MailKit来自地址

时间:2017-09-28 16:26:24

标签: c# asp.net-mvc mailkit

我在asp mvc core中使用mailKit从IMAP邮箱收集电子邮件。

我使用命令

返回消息
var message = inbox.GetMessage(uid) 

这将返回消息的所有结果。从这里我想访问发件人的电子邮件地址(不包括名称)。在对上面的行进行破坏后,我可以看到变量消息具有以下属性

message
-From
--From(Array)
---From(item)
----Name (name of the sender)
----Address(email of the sender)

当使用我能够接收名称的消息引用上述内容时,但未列出地址(在知识范围内,也不会构建)

var name = message.From[0].Name.ToString()

有谁知道为什么这会作为变量的属性可见但是无法通过代码访问?

我只是想

var name = message.From[0].Name.ToString()

2 个答案:

答案 0 :(得分:4)

MimeMessage.From属性为InternetAddressList(或多或少List<InternetAddress>)。

InternetAddressMailboxAddressGroupAddress的抽象基类,它只包含您发现的Name属性。

为了获得Address,您首先需要将其转换为MailboxAddress ...但仅当它实际上是MailboxAddress或者您将获得强制转换异常时

InternetAddressList有一个名为Mailboxes的便利属性,可用于迭代其中包含的MailboxAddress es的扁平列表。

答案 1 :(得分:0)

您可以使用此代码块。

message.From.OfType<MailboxAddress>().Single().Address;