【发布时间】:2011-02-18 12:42:49
【问题描述】:
我正在编写一个工具 c#(和 System.Net.Mail),它将发送大约 4000 封电子邮件。
我可以简单地遍历 4000 个电子邮件地址的列表并一次发送一封电子邮件吗? 或者这会导致任何潜在问题吗?
有没有更好的方法来做到这一点?
谢谢
【问题讨论】:
标签: c# email email-spam
我正在编写一个工具 c#(和 System.Net.Mail),它将发送大约 4000 封电子邮件。
我可以简单地遍历 4000 个电子邮件地址的列表并一次发送一封电子邮件吗? 或者这会导致任何潜在问题吗?
有没有更好的方法来做到这一点?
谢谢
【问题讨论】:
标签: c# email email-spam
您可以一次性发送 4000 封电子邮件,但您确实冒着很快被标记为垃圾邮件发送者的风险。
您最好的选择是“突发发送”,因此可能立即发送 100 个,在 10 分钟内再发送 100 个等。
如果您这样做,您就不太可能被视为垃圾邮件发送者。
【讨论】:
只要您不打破任何服务器限制,例如内存或磁盘空间,从技术上讲是没有问题的。但是,您会遇到与 ISP 和邮件转发器有关的问题,他们可能会阻止您的域中的垃圾邮件——无论对错。
【讨论】:
首先,您必须拥有rDNS 记录,该记录会将IP 地址映射回域名。没有它,像 GMail 这样的邮件服务将保留您的电子邮件数小时甚至数天。此外,您可能会在几十封信后被列入黑名单。 rDNS 通常可以使用主机的控制面板或支持请求来设置。
其次,不要试图使用您的 ISP 或 GMail 的 SMTP 服务器。您将很快用完每日配额。通常不允许发送超过几十封信(GMail AFAIK 为 50)。因此,要么从您自己的服务器发送邮件,要么使用像auth smtp 这样的第三方服务。
如果您由于某种原因无法设置 rDNS,这些服务也很有用。
附:如果您的信件内容正常(即它们实际上不是垃圾邮件)并且 rDNS/SMTP 设置正确,则您可以以任何速率发送,而无需暂停。
【讨论】:
检查发送邮件的机器是否有有效的 PTR 记录 - 即,如果您使用 IP 1.2.3.4 从 www.example.com 发送邮件,则对 1.2.3.4 的 PTR 查询将返回 www.example.com ;我也会调查SPF 和DKIM。
某些电子邮件主机具有传入速率限制(例如 Hotmail 过去曾使用此限制)-“如果您向我们发送的电子邮件超过每分钟 x 封,您将获得更高的垃圾邮件分数”。我有一个脚本来“搅动队列”,从而降低了单个服务器的每分钟速率。
另外,检查一下 - 它有 plenty of good advice on e-mail content,但这有点离题。
【讨论】:
除了上面提到的之外,一定要设置足够的日志记录。
即您应该记录已发送的电子邮件,因此如果您需要重新发送电子邮件,请确保不要发送重复邮件。
此外,您可以设置一个应用程序来记录退回的电子邮件并使用它来删除地址等。
您当然可以编写自己的软件或购买一些软件。
【讨论】: