MailKit发件人地址

Pow*_*015 1 c# asp.net-mvc mailkit

我在ASP MVC核心中使用mailKit从IMAP邮箱收集电子邮件。

我使用命令返回消息

var message = inbox.GetMessage(uid) 
Run Code Online (Sandbox Code Playgroud)

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

message
-From
--From(Array)
---From(item)
----Name (name of the sender)
----Address(email of the sender)
Run Code Online (Sandbox Code Playgroud)

当使用消息引用以上内容时,我可以接收名称,但是未列出地址(具有智能性,也不会构建)

var name = message.From[0].Name.ToString()
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么这会在变量的属性中可见但不能通过代码访问?

我只是想

var name = message.From[0].Name.ToString()
Run Code Online (Sandbox Code Playgroud)

jst*_*ast 5

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

InternetAddress是的抽象基类,MailboxAddress并且GroupAddress只包含Name您发现的属性。

为了获取Address,您首先需要将其强制转换为MailboxAddress...,但前提是它实际上是a MailboxAddress或您将获得强制转换异常。

InternetAddressList具有一个方便的属性Mailboxes,该属性可以用来迭代MailboxAddress包含在其中的es 的扁平列表。

  • var EmailAddress = Message.From.Mailboxes.FirstOrDefault().Address; (2认同)
  • 有关此问题的更多信息可以在 [MailKit FAQ](http://www.mimekit.net/docs/html/Frequently-Asked-Questions.htm#AddressHeaders) 中找到。 (2认同)