【问题标题】:PHP based web application and mass mailing基于 PHP 的 Web 应用程序和群发邮件
【发布时间】:2011-04-23 01:08:41
【问题描述】:

我开发了一个网络应用程序,全国各地的学生都可以通过该应用程序来注册以获取某种学术目的。预计明年内用户将达到 10 万左右。

我需要定期向所有这些人发送邮件。该网络应用程序是使用 codeigniter 开发的。 php 脚本可以运行 3000 秒。但是该应用程序仍然无法向超过 100 个用户发送邮件。

我运行的机器在云端,有 256MB 内存。我使用 free -m 命令检查内存使用情况,但这似乎不是问题。 10-20 封邮件一切正常。

最好的解决方案是什么?有什么方法可以将这项工作转移到其他一些应用程序/程序/shell 脚本?

【问题讨论】:

    标签: php email codeigniter


    【解决方案1】:

    如果您不能为您的电子邮件使用某些外部服务,我将设置一个每 n 秒发送几封电子邮件的 cronjob。如您所见,使用 php 发送大量电子邮件非常麻烦。但据我所知,cronjob 解决方案每次都有效。

    所以你有一个电子邮件/地址列表和一个迭代该列表并发送电子邮件的 cronjob。

    【讨论】:

      【解决方案2】:

      当然,您可以自己从服务器发送电子邮件,但这只是成功的一半。

      如果您要发送批量电子邮件,而不是交易类型的电子邮件,最好使用已在邮件服务器上列入白名单的第三方服务。主要原因是,您可能会被主要邮件服务器列为垃圾邮件发送者。如果发生这种情况,您必须单独与他们合作才能从黑名单中删除。

      另外,如果您在美国经营,您应该熟悉 CAN-SPAM:http://business.ftc.gov/documents/bus61-can-spam-act-Compliance-Guide-for-Business

      【讨论】:

        【解决方案3】:

        MailChimp 是一个可行的候选者。提供邮件是一项耗时的任务,发送多达 10 万个电子邮件地址对您的服务器来说将是一项艰巨的任务。

        它们提供了一个非常强大的 PHP API。

        https://developer.mailchimp.com/

        【讨论】:

          【解决方案4】:

          将它从您的 Web 服务器线程中取出并放入独立运行的东西中是非常合适的。通常对于这样的东西,我在数据库中有表格,从网站写入适当的信息,所以当我准备发送电子邮件时,后端的某些东西可以组合电子邮件并将它们发送出去。如果您要发送 100,000 封电子邮件,您将需要多线程的东西。

          在这种情况下,最好使用许多现成的工具之一,而不是重新发明轮子。我们在这里使用旧版本的 Campaign Enterprise,我可以向它抛出查询,我可以使用这些查询通过 ODBC 直接从我的 Web DB 中提取数据。考虑到您在云端,这可能对您有用,也可能对您不利。

          编辑: 您也可以编写一个 PHP 脚本来执行此操作并从 shell 调用 PHP。也许您可以通过这种方式绕过超时限制? (这是假设您指的是一些服务级别超时。如果您指的是常规 PHP 超时,则可以使用 set_time_limit()。)

          【讨论】:

          • 您可以推荐任何免费软件工具吗?
          【解决方案5】:

          您也许可以使用pcntl_fork 或创建daemon process

          Fork:通过使用 fork 过程,您可以将电子邮件分组并发送出去。每个批次都可以在它自己的 fork 子进程中

          守护程序:通过使用守护程序,您可以创建一批电子邮件并将它们发送给守护程序处理。一个守护进程可以一次运行多个批次。

          【讨论】:

            猜你喜欢
            • 2012-07-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-10-06
            • 2012-09-15
            • 2019-02-04
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多