c# - MailKit 接收电子邮件不显示 message.Body
问题描述
我可以正常接收电子邮件,但message.TextBody
有消息时显示为空白。
message.HtmlBody
显然,在大量 html 内容中显示正文,但我正在寻找message.TextBody
.
message.TextBody.ToString()
显示错误
你调用的对象是空的
我正在使用以下代码:
client.ServerCertificateValidationCallback = (s, c, h, e) => true;
client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
client.Connect("pop.gmail.com", 995, true);
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.Authenticate("aaaa@gmail.com", "ssss");
gstrEmailMessages = gstrEmailMessages + client.Count + "\n";
//Fetch emails:
for (int i = 0; i < client.Count; i++)
{
var message = client.GetMessage(i);
gstrEmailMessages = gstrEmailMessages + "Subject: " + message.Subject + "\n";
gstrEmailMessages = gstrEmailMessages + "TextBody: " + message.TextBody + "\n";
gstrEmailMessages = gstrEmailMessages + "HtmlBody: " + message.HtmlBody + "\n";
}
//Disconnect connection:
client.Disconnect(true);
为什么message.TextBody
显示空白?
解决方案
并非所有消息都具有 HTML 和纯文本正文。事实上,有些消息可能两者都没有。
不过,一般来说,大多数消息至少包含其中的 1 个。
推荐阅读
- c# - 如何覆盖(不组合)每个方法的授权属性
- hangfire - 每次使用 hangfire/stats ajax 调用都会调用 Hangfire 授权
- vba - 有没有办法在不手动交叉检查的情况下删除过时的代码?
- android - 我在哪里可以获得 Xamarin.Android 调试符号?
- java - 为什么泛型数组中的setter方法起作用(JAVA)?
- c# - C# - 基于变量配置的映射对象
- docker - 使用 Virtualbox 驱动程序创建 Docker 机器主机时出错
- azure - 使用 SAML 和 Salesforce 访问 Azure
- python - 如何使用 python-docx 在段落中添加运行
- c++ - Visual Studio 代码 2019 和 protobuf cpp 代码