c# – 为什么.NET发送的邮件SmtpClient缺少Message-Id?

前端之家收集整理的这篇文章主要介绍了c# – 为什么.NET发送的邮件SmtpClient缺少Message-Id?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我在App.Config中的SMTP设置:
<system.net>
    <mailSettings>
      <smtp from="Reminder &lt;reminder@myserver.com&gt;">
        <network host="mail.myserver.net" port="587" password="my password" userName="reminder@myserver.com" enableSsl="true"/>
      </smtp>
    </mailSettings>
  </system.net>

这是我如何发送电子邮件

message.SubjectEncoding = System.Text.Encoding.UTF8;
message.BodyEncoding = System.Text.Encoding.UTF8;
smtpClient.Send(message);

这是工作!但唯一的问题是,我的电子邮件将发送到垃圾邮件文件夹,因为他们的标题中缺少Message-Id.我在Thunderbird中使用相同的帐户,当我使用thunderbird发送电子邮件时,Message-Id被添加到我的电子邮件中,但是从我的应用程序发送的电子邮件不会发生.

我可以手动添加标题

message.Headers.Add("Message-Id","<3BD50098E401463AA228377848493927-1>");

但是,此ID不是有效的邮件ID,我仍然会收到否定的垃圾邮件评分.
任何想法为什么会发生这种情况?

这是我在雷鸟中所拥有的
主持人:mail.korax.net /
认证:普通密码/
港口:587 /
安全性:STARTTLS

解决方法

您的SMTP服务器必须配置为自动包含消息ID.如果生成自己的ID,应该跟随 RFC 2822 Section 3.6.4.

猜你在找的C#相关文章