【问题标题】:GMail SMTP returning different body contentGMail SMTP 返回不同的正文内容
【发布时间】:2018-06-14 13:36:09
【问题描述】:

我正在获取这样的电子邮件:

private static SmtpClient client = null;

client = new SmtpClient();
client.UseDefaultCredentials = false;
client.Host = "smtp.gmail.com";
client.Port = 587;
client.EnableSsl = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Credentials = new NetworkCredential(email, password);
client.Timeout = 20000;

IEnumerable<uint> uids = client.Search(SearchCondition.Unseen());

然后迭代uid,并为每个:

MailMessage m = client.GetMessage(msgUID, FetchOptions.Normal);
client.SetMessageFlags(msgUID, null, MessageFlag.Seen);
string date = ((DateTime)m.Date()).ToString("g");
string body = m.Body;

我的问题是消息正文不是实际电子邮件中显示的正文,它是完全不同的(并且正文没有出现在电子邮件中)。

我在想,电子邮件的正文可能是动态拉取的,并在您在浏览器中打开 gmail 消息时替换了内容。 我获取的正文似乎没有任何 html 或 js。

我会提到,如果我将这封电子邮件转发给自己,并处理该电子邮件正文的内容确实是我想要的内容。

可以吗?我如何发现这是否真的是原因,如果是,我如何解决该问题以检索正文的实际文本?

编辑:在调试器中检查 MailMessage 对象时,我可以看到它具有 Count 1 的“AlternateView”,不确定这是否意味着总共有一个视图或除了我拉取的视图之外还有一个视图。我在调试树中看不到任何内容。

【问题讨论】:

    标签: c# smtp gmail


    【解决方案1】:

    这封电子邮件实际上确实包含了一个替代视图,其中包含我想要的内容。 解决方案在以下链接中找到 Retrieving AlternateView's of email

    【讨论】:

      猜你喜欢
      • 2018-07-08
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      相关资源
      最近更新 更多