【问题标题】:Building a bulk mail sender [closed]建立一个批量邮件发件人[关闭]
【发布时间】:2010-09-23 08:08:32
【问题描述】:

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

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

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

这是否会给我在合理的时间范围内向数千名用户发送邮件所需的性能水平?

如果不是,我是否应该考虑在“较低级别”做事,在一个线程中执行 DNS 查找,在另一个线程中的端口 25 上直接发送到相关服务器,等等?

任何指针将不胜感激!


不是真正的答案 - 而是为任何感兴趣的人提供更新...我目前正在寻找来自 ActiveUp 的名为 ActiveMail 的产品。

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

【问题讨论】:

标签: .net email bulk


【解决方案1】:

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

不过,我在使用 Bulk-Email 时发现了一些重要的事情:

请勿使用您自己的 SMTP 发送这些邮件。

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

SmtpClient 中还有一个小错误给我带来了麻烦,因为主机名不是完全限定的域名(按照 SMTP 规范的要求),而是机器名(这是 SmtpClient 内部的一个内部字段)。一些 SMTP 服务器非常重视这一点并想要一个域名,所以我最终将该字段设置为反射到 FQDN。 (希望这已经改变了)

【讨论】:

    【解决方案2】:

    这个问题不够精确,但我还是会尝试回答。有几个因素限制了您的选择。最好的“方式”真的取决于你的情况。你工作的最后期限是什么时候?

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

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

    就我个人而言,我非常喜欢保持简单。如果时间紧迫,重用可用软件是明智之举。您多久会发送数千封邮件?该间隔将定义时间范围是否合理。是不是太小了,以至于当另一个版本准备好发送时,系统仍然在处理第一个“批次”?

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-24
        • 2019-06-22
        • 2010-10-17
        • 2016-10-13
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多