.NET System.Net.Mail消息始终在内部服务器上标记为垃圾

我正在使用System.Net.Mail发送一些电子邮件。 电子邮件由我们的内部邮件服务器发送到本地地址。 但是,所有这些消息都会直接暴露在Outlook中。 邮件正在从有效的电子邮件地址发送。 什么会导致我们的服务器将其标记为垃圾?

MailMessage msg = new MailMessage(); msg.IsBodyHtml = true; msg.Subject = subject; msg.Body = body; msg.From = new MailAddress(from); msg.To.Add(to); SmtpClient client = new SmtpClient(server, 25); client.Send(msg); 

我已经看到,当外发SMTP直接发送而不是中继您的官方(在DNS中设置)邮件服务器时会发生这种情况。 导致此问题的正常规则是您的SMTP发送IP与您的域SMTP地址的IP不匹配。

例:

您的域的外发邮件服务器smtp.domain.com = 10.1.1.1

System.Net.Mail使用运行代码= 10.1.1.100的服务器的IP地址

由于它们不匹配,因此会被标记为垃圾邮件。 如果你可以关闭你的邮件服务器,这可能会解决你的问题。 如果不能,您可以使用组策略在Outlook中设置规则,说明您域中的所有电子邮件都是SAFE。 只有当计算机在您的网络上时,外部用户仍会看到它被标记为垃圾邮件。

这取决于您的电子邮件服务器/客户端上的设置。 各种各样的事情会让他们给出更高的“垃圾邮件分数”。 例如,它的HTML通常会提高垃圾邮件分数,而且我认为如果起始地址与从中发送的域不匹配等。