GMail SMTP返回不同的正文内容

时间:2018-01-04 18:53:46

标签: c# smtp gmail

我正在收到这样的电子邮件:

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());

然后迭代uids,并为每个:

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”,不确定这是否意味着除了我提取的内容之外总共有一个视图或一个视图。我在调试树中看不到任何内容。

1 个答案:

答案 0 :(得分:0)

电子邮件确实包含一个备用视图,其中包含我想要的内容。 解决方案可在以下链接中找到 Retrieving AlternateView's of email