构建批量邮件发件人

时间:2008-11-20 21:01:01

标签: .net email bulk

我想构建一个允许我的客户通过电子邮件发送营销信息的应用程序。这将是一个经过仔细监控的工具,仅用于合法的批量邮件。它将拥有所有必要的“取消订阅”功能等。

该解决方案将使用VB.NET构建。

我的问题涉及实际发送电子邮件的最佳方式。我们的数据中心有一个SMTP服务器供我们使用。我想我们可以写一些多线程的Windows服务来监控要发送的电子邮件数据库,然后调用System.Net.Mail API来发送这个服务器。

这会给我提供在合理时间范围内向成千上万用户发送邮件所需的性能水平吗?

如果没有,我应该考虑在“较低级别”进行操作,在一个线程中执行DNS查找,直接向另一个线程中的端口25上的相关服务器发送等等吗?

任何指针都将不胜感激!


不是真正的答案 - 但对任何感兴趣的人都有更新......我目前正在寻找ActiveUp中名为ActiveMail的产品。

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

3 个答案:

答案 0 :(得分:3)

我认为自己推出类似的东西并不困难。建造需要一天左右的时间。但是你应该好好利用现有的东西。

尽管如此,我在发布批量电子邮件时发现了一些重要的事情:

请勿使用您自己的SMTP发送。

查找收件人的MX条目并将SMTPClient连接到他们的 SMTP,这样可以获得在找不到邮箱或其他错误时收到即时错误消息的好处,而且你不要强调自己的服务器。

SmtpClient中还有一个小错误给我带来了麻烦,因为主机名不是完全限定的域名(根据SMTP规范的要求),而是机器名称(这是SmtpClient内部的一个内部字段)。有些SMTP服务器认真对待并想要一个域名,所以我最终设置了反射到FQDN的字段。 (希望自那以后改变了)

答案 1 :(得分:2)

首先得到一个组件来完成繁重的工作。 我建议:aspnetmail

然后设置批量邮件就像下载一些示例代码一样简单。
WebMailer: Sending 1000s of emails from a web page without timing out.

同一供应商还提供mx记录检查/退回邮件检查等。 这个解决方案不是免费的,但是您节省的时间不会追逐标准邮件组件中的错误/不一致,这将使您的价值得以实现。

哦,如果你想要一个位于桌面上的散装邮件,也提供: http://www.aspnetemail.com/rapidmailer/

答案 2 :(得分:1)

这个问题不够精确,但无论如何我都会尝试回答。有几个因素限制了你的选择。最好的“方式”取决于您的具体情况。你在做什么截止日期?

与您提到的其他选项相比,实现大型,低级别,多线程的邮件发送系统将花费大量时间。当然,从头开始编写整个内容比使用SMTP服务器和.NET库发送邮件要优雅得多。

还有不同数据之间的带宽问题。 .NET应用程序和数据库是否在与SMTP相同的服务器上运行?如果没有,带宽管道将如何限制每秒发送的邮件的最大值?

我个人非常喜欢保持简单。如果时钟正在滴答,重复使用可用的软件是一个聪明的举动。你多久会发送数千封邮件?该间隔将定义时间范围是否合理。是否它太小了,当另一个版本准备好发送时,你最终可能会在第一个“批处理”上工作?