C# 为什么.NET SmtpClient发送的电子邮件缺少邮件Id?
这是我在App.Config中的SMTP设置:C# 为什么.NET SmtpClient发送的电子邮件缺少邮件Id?,c#,.net,asp.net,C#,.net,Asp.net,这是我在App.Config中的SMTP设置: <system.net> <mailSettings> <smtp from="Reminder <reminder@myserver.com>"> <network host="mail.myserver.net" port="587" password="my password" userName="reminder@myserver.co
<system.net>
<mailSettings>
<smtp from="Reminder <reminder@myserver.com>">
<network host="mail.myserver.net" port="587" password="my password" userName="reminder@myserver.com" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
这是工作!但唯一的问题是,我的电子邮件将被放入垃圾邮件文件夹,这是因为它们的标题中缺少邮件Id。我在Thunderbird中使用相同的帐户,当我使用Thunderbird发送电子邮件时,消息Id会添加到我的电子邮件中,但从我的应用程序发送的电子邮件不会出现这种情况
我可以手动添加标题,如下所示:
message.Headers.Add("Message-Id","<3BD50098E401463AA228377848493927-1>");
message.Headers.Add(“message Id”和“”);
但是这个Id不是一个有效的邮件Id,我仍然会得到负面的垃圾邮件分数。
知道为什么会这样吗
这就是我在《雷鸟》中看到的:主机:mail.korax.net/
身份验证:普通密码/
端口:587/
安全性:STARTTLS您的SMTP服务器必须配置为自动包含邮件ID。如果生成您自己的ID,则应遵循此操作。请参阅本文: 我也遇到了同样的问题
System.Net.Mail
不会自动附加邮件Id。但你可以这样说:
mailMessage.Headers.Add("Message-Id",
String.Format("<{0}@{1}>",
Guid.NewGuid().ToString(),
"mail.example.com"));
mailMessage.Headers.Add(“邮件Id”,
String.Format(“”,
Guid.NewGuid().ToString(),
"mail.example.com),;
事实上,我让我的主机修复了它,他们做到了:)但是如果他们不为我这么做,你的解决方案是我能做的最好的:)谢谢。
mailMessage.Headers.Add("Message-Id",
String.Format("<{0}@{1}>",
Guid.NewGuid().ToString(),
"mail.example.com"));