【问题标题】:How to get the "Date" of an email?如何获取电子邮件的“日期”?
【发布时间】:2012-09-24 09:42:06
【问题描述】:

我创建了一个从邮件服务器获取电子邮件的应用程序。 我使用“System.Net.Mail.MailMessage”接收电子邮件。 现在我想获取收件箱中每封电子邮件的“日期和时间”。

【问题讨论】:

  • 如果可以,请更具体。来自html标头的日期时间?还是您的邮件客户端收到它的日期?
  • 我想我想要来自 html 标头的 DateTime。例如在 gmail 中,我想要在每封电子邮件中显示的 DateTime。
  • 好吧,我不会声称要解释 Micah 已经没有的任何事情。使用 system.net.mail.mailmessage 类,您可以访问 Headers 中所需的所有信息。看看他的回答和他提供的链接。

标签: c# email datetime mailmessage


【解决方案1】:

你会想看看这里的电子邮件标题是一些文档

http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.headers.aspx

message.Headers["Date"];

【讨论】:

  • 这个标题意味着只是一个相当特定格式的字符串,手动解析它是获取日期的最佳实践吗?
  • 是的,这将作为字符串返回,然后您需要使用 datetime.parse
  • 当心 - DateTime.Parse 并不总是能够解析可能在标题中返回的某些日期:例如。 “2017 年 6 月 20 日星期二 18:51:10 +0000 (UTC)”
【解决方案2】:

我检查了 MailMessageObject 并发现了这个:

  Headers=HeaderCollection(5) 
  {
    "Uid",
    "DateCreated",
    "DateReceived",
    "Date",
    "IsRead"

这意味着您总共可以使用三个选项。输出将是字符串格式。

message.Headers["DateCreated"];
message.Headers["DateReceived"];
message.Headers["Date"];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 2015-12-05
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多