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

xRo*_*bot -146 php email mailing-list email-integration massmail

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

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

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

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

Pis*_*3.0 680

简短的回答:虽然在技术上可以每星期自己发送10万封电子邮件,最简单,最容易和最便宜的解决方案是外包这一来,专门在它的公司之一(我没有说"最便宜":有没有限制在尝试DIY时你可以沉入其中的开发时间(以及钱).

答案很长:如果你决定自己绝对想要这样做,那么就要为受伤的世界做好准备(毕竟,这是我们所说的电子邮件/电子邮件失败).你需要:

  • 垃圾邮件的电子邮件内容(否则您将在每一步都遇到其他主要障碍,甚至是法律后果)
  • 此外,您的内容应该很容易垃圾邮件区分开来 - 在某些情况下可能有点难以做到(我听说某家制药公司不得不放弃电子邮件,因为他们的品牌名称在垃圾邮件中非常常见)
  • 您自己配置的一个可配置的SMTP服务器,当您将100k电子邮件转储到它上面时它不会弯曲(您的ISP的上游服务器在这里是不够的,您将使ISP非常不满意;我们使用了两个专用的盒子)
  • 一些邮件包装器(例如PhpMailer,如果PHP是你选择的毒药;使用PHP mail()本身就太可怕了)
  • 你自己的发送者函数在循环中运行,创建邮件并将它们传递给包装器(请注意,如果你的应用程序有内存泄漏,你可能会遇到PHP的内存限制;你可能需要定期回收发送过程,甚至更好,完全分离"创建电子邮件"和"发送电子邮件"

令人惊讶的是,这很容易.困难的部分实际上是发送它:

  • 当你发送太多邮件时,有些服务器会禁止你,所以你需要随机播放并观察你的队列(例如发送一封邮件到joe@example.com,然后发送三封到其他域名,然后再发送另一封到其他域名:otheraddress@example.com )
  • 你需要有正确的PTR,SPF,DKIM记录
  • 处理远程服务器超时,配置错误的DNS记录和其他网络恳求
  • 处理无效的电子邮件(不,正则表达式是错误的工具)
  • 处理取消订阅(许多合法的新闻简报被重新归类为垃圾邮件,因为许多沮丧的用户无法一步取消订阅而是选择"标记为垃圾邮件" - 垃圾邮件过滤器确实可以学习,尤其是大型电子邮件提供商)
  • 处理退回和拒绝("没有这样的邮箱ojhn@example.com","邮箱john@example.com已满")
  • 处理来自黑名单(当然,你不发送垃圾邮件黑名单,并去除部分收件人不会那么肯定-这样的大名单,这时有发生,不管你采取什么预防措施有些人(比如你不那么. -scrupulous竞争对手),甚至可能去尽量以谎报您的邮件为垃圾邮件-它确实发生在平均,它需要数周来让自己从黑名单中删除).

而最糟糕的是,你必须要管理它的法律部分(各联邦,州和地方法律,一旦你在美国(注外送法律,甚至是不同的缠结:你有没有发现,如果乔的方式@ hotmail.com住在西南Elbonia,拥有世界上最严厉的反垃圾邮件法律))的国家.

我很确定我错过了这个九头蛇的几个头 - 你还确定你想要自己做吗?如果是这样的话,那将会有另一波浪潮,这次只是发送电子邮件时固有的恼人问题.(您看,SMTP是一种存储转发协议,这意味着您的电子邮件将在互联网上的许多SMTP服务器之间进行混洗,希望下一个服务器更接近最终收件人.基本上,电子邮件将发送到SMTP服务器,该服务器将其放入其转发队列;当时间到来时,它会将其进一步转发到其他SMTP服务器,直到它到达给定域的SMTP服务器.此转发可能立即发生,或者在几分钟,几小时,几天,或从不.)因此,您将看到以下问题 - 大多数问题可能发生在途中以及目的地:

  • 远程SMTP服务器不希望与SMTP服务器通信
  • 你的邮件被标记为垃圾邮件(<blink>这里不是你的朋友,也不是<font color=...>)
  • 您的邮件是在几天甚至几周内发送的(与流行的观点相反,SMTP旨在尽最大努力在将来的某个时间传递消息 - 而不是现在提供它)
  • 您的邮件根本没有发送(已经从第4跳的电子邮件服务器发送,而不是从第5跳的服务器发送,当前保存邮件的服务器崩溃,数据丢失)
  • 你的邮件在途中被一些脑卒中服务器破坏了(这个可以用base64编码解决,但随后大小上升,电子邮件看起来更可疑)
  • 你的邮件已送达,收件人似乎不想要它们("我确定我没有报名参加此活动,我记得我一年前所做的事情"(当然,你这样做,先生))
  • 具有各种版本的Microsoft Outlook及其对Internet邮件的特殊处理的用户
  • 向导的学徒模式(一个自我强化的正反馈循环 - 换句话说,自动电子邮件作为对自动电子邮件的回复,作为对...的回复;你真的不想成为关闭它的人,如同你自己的互联网有一半的愤怒)

,这将是你的工作,排查并解决这个(提示:你不能,大部分).经营合法的群发邮件业务的人知道,最终你无法解决它,也无法解决它 - 并且他们有充分研究,记录和概述的原因(甚至可能作为Powerpoint演示文稿) -完成与声音和凉爽的过渡-你的老板可以理解),因为他们已经收到解释这个一百万次.另外,对于那些真正解决的问题,他们非常清楚地知道如何解决这些问题.

毕竟,如果你没有气馁,仍然想要做到这一点,那么就去吧:你甚至有可能找到更好的方法来做到这一点.只要知道前面的路并不容易 - 发送电子邮件是平凡的,得到它交付是很难的.

  • @elusive几乎不浪费,这就是[Reversal badge](http://stackoverflow.com/badges/95/reversal)的全部内容! (83认同)
  • @Piskvor:如果您对邮件进行适当的计时,您可以根据需要发送尽可能多的邮件.当您太快地发送太多邮件时会出现问题.我通过ASP.Net缓存回拨,以每分钟20封邮件的周期向订阅者发送大约30,000封时事通讯邮件.它已经工作了两年多,从未被封锁. (3认同)

soh*_*970 46

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

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

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

AuthSMTP

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

邮戳

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

JangoSMTP

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

SendGrid

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

结论

Sendmark是最好的,Postmark排在第二位.我们从未在这两个中的任何一个发送时间中看到任何犹豫 - 在某些情况下我们一次发送了数百封电子邮件 - 并且他们都拥有最好的投资回报率,给定了坚实的功能集.