2008-11-20 72 views
2

我想构建一个应用程序,使我的客户能够通过电子邮件发送市场营销信息。这将是一个严格监控的工具,仅用于合法的批量邮寄。这将具有所有必要的“取消订阅”功能等构建批量邮件发件人

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

我的问题涉及到的最好的方式来实际发送电子邮件。我们可以在我们的数据中心使用SMTP服务器。我在想我们可以编写某种多线程的Windows服务来监视发送的电子邮件数据库,然后调用System.Net.Mail API来通过这个服务器发送。

这是要给我的业绩水平,我需要将邮件发送到成千上万的用户在一个合理的时间框架?

如果不是这样,我应该看着在“较低水平”做事情,在一个线程中执行DNS查找,在另一个线程上的25端口直接发送到相关服务器等?

任何指针,将不胜感激!


不是一个真正的答案 - 但是对于任何有兴趣的更新......目前,我正在寻找一个从ActiveUp称为ActiveMail产品。

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

+0

在StackOverflow上提出的类似问题:[如何以通用方式向用户发送批量邮件?](http://stackoverflow.com/questions/215736/how-do-i -send-bulk-mail-to-my-users-in-a-generic-fashion)[良好的电子邮件服务用于批量电子邮件](http://stackoverflow.com/questions/215736/how-do-i-send-批量邮寄给我的用户在一个通用时尚) – 2008-11-21 01:44:42

回答

1

这个问题不够精确,但我会尽力回答它。有几个因素限制你的选择。最好的“方式”真的取决于你的情况。你的工作截止日期是什么?

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

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

我个人很喜欢保持简单。如果时钟正在滴答,重复使用可用软件是一项明智之举。你多久会发送数千封邮件?该时间间隔将确定时间范围是否合理。是否如此之小以至于当另一个版本准备好发送出去时,系统仍然可以在第一批“批处理”上工作?

2

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

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

相同的供应商还提供MX记录检查/反弹邮件跳棋等 该解决方案是不是免费的,但你救不追逐错误的时间/标准的邮件组件的不一致将会使这个值得您光顾。

哦,如果你想它坐落在桌面上的大宗邮件,它也提供: http://www.aspnetemail.com/rapidmailer/

3

我认为这并不难推出类似的东西你自己。建设需要一天左右的时间。但是,使用现有的东西应该会更好。

不要使用自己的SMTP发送者:

不过,做批量电子邮件时,有些事情,我发现很重要。

查找的MX条目收件人和连接SMTPClient到他们 SMTP,这给了你,你得到即时的错误味精回来时,邮箱找不到或别的东西是错的利益,而你不知道不要强调你自己的服务器。

在SmtpClient中也有一个小错误给我带来麻烦,因为主机名不是完全合格的域名(按照SMTP规范的要求),而是机器名称(这是SmtpClient内部的字段)。一些SMTP服务器认真对待并且想要一个域名,所以我最终将该域设置为反映到FQDN。 (希望这改变了)