【问题标题】:Mailing Emailing to 50,000-100,000 subscribers向 50,000-100,000 名订阅者发送电子邮件
【发布时间】:2010-11-01 16:01:04
【问题描述】:

我想开发一个邮件列表应用程序,该应用程序需要能够一次处理向 50,000-100,000 个订阅者发送消息。

Swiftmailer 的batch send method 可以处理这个问题吗? 在电子邮件/SMTP/邮件服务器方面,我是个笨蛋——在开发此应用程序时我还需要注意哪些其他事项?

【问题讨论】:

  • 这是几个问题;您可能会更成功地将其分解为几个问题并分别提出。
  • 我认为这不是您发送的垃圾邮件?
  • 我知道这是一个最近的问题的重复,但我似乎找不到它......我一定没有尝试正确的词。

标签: performance email smtp swiftmailer


【解决方案1】:

虽然我通常是 Swiftmailer 的忠实粉丝,但对于这么大的列表,我不一定会推荐它。我有一个网站一年多来一直在使用 PEAR MailMail_Queue 发送这种规模的成员通知,没有任何问题。

基本上,消息排队等待传递(作为记录存储在 MySQL 数据库中),然后一个 cron 作业在整个晚上定期运行,以可管理的批次发送它们(使用 php CLI)。

回答原始问题的第二部分,since moved here)至于跟踪:

  • 我不知道反弹。
  • 我认为跟踪“打开”的唯一方法是在服务器中包含一个图像文件(在电子邮件中),然后您可以跟踪请求。我没有这种方法的经验,但听说它不可靠 - 加上它引发的道德问题......
  • 跟踪点击的最简单方法可能是在重定向到相关 URL 之前通过您自己的服务器运行它们。再次,道德......

【讨论】:

    【解决方案2】:

    我已经写了一个或三个邮件应用程序。根本无法对 swiftmailer 发表评论,但要记住一些事情:

    1) 这种规模的列表是长期运行的操作。运行时间如此之长,以至于它们根本不应该由 Web 进程处理,而是作为某种批处理作业。

    2) 有时某事会搞砸并切断要发送的内容流。这意味着您的邮件应用程序应该能够 a)知道它在做什么,并且 b)能够在任何时候重新启动自己。

    3) 与 #2 相关——在这只小狗上使用大量仪器和日志记录。您将需要能够弄清楚这个长期运行的批处理过程何时出错以及为什么会在某个时候出错。

    因此,基本上,要关注的关键是使批处理作业位起作用。究竟是什么电子邮件发送引擎几乎是次要问题。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2016-02-18
      • 2019-12-08
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 2020-02-08
      相关资源
      最近更新 更多