首页 文章

GMail SMTP返回不同的正文内容

提问于
浏览
0

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

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

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

相关问题