构建一个批量邮件发送器

3
我想构建一个应用程序,允许我的客户通过电子邮件发送营销信息。这将是一个谨慎监控的工具,仅用于合法的批量邮件。它将具有所有必要的“取消订阅”功能等。
解决方案将使用VB.NET构建。
我的问题与实际发送电子邮件的最佳方法有关。我们在数据中心拥有一个SMTP服务器,可以使用它。我想我们可以编写一些多线程的Windows服务来监视要发送的电子邮件数据库,然后调用System.Net.Mail API通过此服务器发送。
如果不行,我应该考虑以“更低级别”的方式进行操作吗?在一个线程中执行DNS查找,在另一个线程中直接向相关服务器发送25号端口等?
任何指针都将不胜感激!

这并不是一个答案,但对于任何感兴趣的人,以下是最新进展……我目前正在研究一个名为ActiveMail的产品,来自ActiveUp

它似乎是一个MTA(执行自己的MX查找并直接发送邮件),并带有一个多线程排队应用程序。


这个问题在StackOverflow上已经有答案了,链接在这里:http://stackoverflow.com/questions/21547472/performance-of-bulk-emailing-using-system-net-mail/26788231#26788231。 - Observer
3个回答

3

我认为自己制作这样的东西并不难,可能需要一天时间来构建。但是最好使用现有的东西。

然而,在进行大量邮件发送时,我发现以下几点很重要:

不要使用自己的SMTP服务器发送邮件。

查找收件人的MX记录,并将SMTPClient连接到他们的 SMTP服务器,这样您就可以立即获得错误消息,当邮箱不存在或其他问题时,您不会给自己的服务器带来压力。

SmtpClient中还存在一个小错误,因为主机名不是完全合格的域名(如SMTP规范所请求的),而是机器名(这是SmtpClient内部字段)。一些SMTP服务器认真对待这一点,需要一个域名,所以我最终使用反射将该字段设置为FQDN。(希望此问题已经得到解决)


2
首先,获取一个组件来处理繁重的工作。我建议使用 aspnetmail
然后,设置批量邮件就像下载一些示例代码一样容易。WebMailer:在网页上发送数千封电子邮件而不会超时。 同一供应商还提供mx记录检查器/退信邮件检查器等。这个解决方案并不免费,但是你节省的追踪标准邮件组件中的错误/不一致性的时间将使得这个值得你的付出。
哦,如果你想要一个桌面版的批量邮件发送器,也可以提供:http://www.aspnetemail.com/rapidmailer/

1
问题不够明确,但我会尝试回答。有几个因素限制了你的选择。最好的“方式”取决于你的情况。你面临的截止日期是什么?
实现一个大型、低级别、多线程的邮件发送系统需要比你提到的其他选项花费更多的时间。当然,从头开始编写整个系统比使用SMTP服务器和.NET库发送邮件更加优雅。
还有不同数据之间的带宽问题。.NET应用程序和数据库是否在与SMTP相同的服务器上运行?如果不是,带宽管道将如何限制每秒发送的最大邮件数量?
个人而言,我非常喜欢保持简单。如果时间紧迫,重复使用可用软件是一个明智的选择。你会经常发送成千上万封邮件吗?这个间隔将定义时间框架是否合理。如果时间间隔很小,当另一个版本准备好发送时,你可能仍然在第一批邮件上工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接