如何每周发送100,000封电子邮件?

时间:2010-10-11 11:24:18

标签: php email email-integration mailing-list massmail

如何在PHP中每周向100,000名用户发送电子邮件?这包括使用以下提供商向订阅者发送邮件:

  • AOL
  • G-邮件
  • 的Hotmail
  • 雅虎

重要的是,在可能的范围内实际发送所有电子邮件。显然,传统上发送邮件只会造成问题。

是否有一个PHP库使这更简单?

3 个答案:

答案 0 :(得分:681)

答案 1 :(得分:46)

人们推荐MailChimp,它是批量电子邮件的好供应商。如果您正在为交易电子邮件寻找一个好的供应商,我可能会提供帮助。

在过去的6个月中,我们使用了四家不同的SMTP供应商,目的是确定哪家是最好的。

以下是我们发现的内容摘要......

AuthSMTP

  • 最便宜
  • 没有分析/报告
  • 无法跟踪打开/点击
  • 对某些发送有点犹豫

Postmark

  • 非常便宜,但不如AuthSMTP便宜
  • 美丽的cpanel但没有跟踪打开/点击
  • 发送级活动跟踪,以便您可以打开已发送的电子邮件,并查看其外观和投放数据。
  • 必须使用API​​。最近推出了由SMTP发送,但它是错误的。例如,我们注意到主题行中的引号(“)被剥离。
  • 无法发送您想要的任何附件。必须位于批准的文件类型列表中且大小不一。 (我认为10 MB)
  • 需要名称/地址的设置列表。

JangoSMTP

  • 与其他人相比价格昂贵 - 在某些情况下超过10次
  • 丑陋的cpanel,但对电子邮件级详细信息的打开/点击有很好的跟踪
  • 有时,在发送时犹豫不决。有两次发送需要一个小时才能发送
  • 需要名称/地址的设置列表。

SendGrid

  • 不像AuthSMTP那么便宜,但仍然非常便宜。许多客户每天可以存在200个免费发送。
  • 体面的cpanel,但没有关于打开/点击跟踪的深入细节
  • 许多API选项。可以在逐个电子邮件的基础上自定义选项(打开/点击跟踪等)。入站(回复)电子邮件可以发布到我们的HTTP端点。
  • 发送时绝对零犹豫。发送的每封电子邮件几乎都会立即登陆收件箱。
  • 可以从姓名/地址发送任何内容。

<强>结论

SendGrid是最好的,Postmark排在第二位。我们从未在这两个中的任何一个发送时间中看到任何犹豫 - 在某些情况下我们一次发送了数百封电子邮件 - 并且它们都具有最佳的投资回报率,并且具有可靠的功能集。

答案 2 :(得分:4)

以下是我最近在一个更大的系统上用PHP做的事情:

  1. 用户输入简报文本并选择收件人(生成查询以便稍后检索电子邮件地址)。

  2. 将简报文本和收件人查询添加到mysql表中名为* email_queue *

    的行中
    • (表email_queue的列为“to”“subject”“body”“priority”)
  3. 我创建了另一个脚本,它作为一个cron作业每分钟运行一次。它使用SwiftMailer类。这个脚本只是:

    • 在营业时间内,发送优先级为== 0

    • 的所有电子邮件
    • 下班后,优先发送其他电子邮件

  4. 根据主机设置,我现在可以使用标准的swiftmailers插件来节流,比如防洪和油门......

    $mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(50, 30));
    

    $mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin( 100, Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE ));
    
    等等等。

    我已将其扩展到此伪代码,附件和许多其他可配置设置,但只要您的服务器设置正确以发送电子邮件,它就能很好地工作。 (可能不会在共享主机上工作,但理论上它应该......)Swiftmailer甚至有一个设置

    $message->setReturnPath
    

    我现在用它来追踪弹跳......

    快乐的小径! (快乐的电子邮件?)