【发布时间】:2011-01-22 23:19:58
【问题描述】:
我有一个需要通过 smtp 发送 html 电子邮件的 C# 应用程序。电子邮件可以正常发送,但 Outlook 上的默认安全设置(低)将其归类为垃圾邮件。
这不完全是一个大问题,但这很烦人,尤其是因为垃圾文件夹关闭了 html。我不想让我公司的每个人都做一些特别的事情来以可读的方式接收这些电子邮件,有人知道我可以做什么让 Outlook 认为这是垃圾邮件吗?
制作电子邮件的代码(基本的东西)。Config 是一个对象,它保存与这些东西的配置相关的字符串,toList 是电子邮件地址的列表,正文/主题由其他函数调用填充。
编辑:补充一下,目前我只是将其发送给自己。在实时版本中,我们将看到在最坏的情况下被发送到的人不到 100 人。
另一个编辑:事实证明,对于我前几天生成的较长的电子邮件(最糟糕的是大约 200-300 行),而不是我生成的较短的电子邮件,这种情况发生的频率要高得多现在正在生成。我想这是一个足够合理的过滤标准。
SmtpClient smtp = new SmtpClient(config.SmtpServer);
NetworkCredential net = new NetworkCredential();
net.UserName = config.SmtpLogin;
net.Password = config.SmtpPass;
smtp.Credentials = net;
MailMessage msg = new MailMessage();
msg.IsBodyHtml = true;
msg.Priority = MailPriority.Normal;
msg.To.Add(String.Join(",", toList.ToArray()));
msg.From = new MailAddress(fromAddr, "Build Server");
msg.Body = "Blah html is here";
msg.Subject = "Build successful: #numberhere and stuff";
try
{
smtp.Send(msg);
}
catch (SmtpException)
{
//stuff
}
【问题讨论】:
-
我认为这与您的 Outlook 服务器配置有关,而不是与您的 SMTP 客户端代码有关——您在此处显示的任何内容都不会触发“这是垃圾邮件”过滤器。 .