【问题标题】:How can I send thousands of emails without limits in php?如何在 php 中无限制地发送数千封电子邮件?
【发布时间】:2015-12-05 04:12:34
【问题描述】:

我有一个网站,每天早上都会发送一份时事通讯。
但这不是常规的时事通讯,每封电子邮件都有不同的内容,具体取决于用户帐户。

现在我使用了一个名为 PHPMailer 的类,它工作得很好,它可以满足我的需要。但要做到这一点,我使用 Gmail 帐户进行身份验证。问题是,Gmail 与任何其他电子邮件服务一样,都有其每日发送限制。
事实上,它只发送前 2000 封电子邮件。

我怎样才能克服这个问题?我的服务是免费的,我没有钱支付任何额外的服务,我只有我的(专用)服务器。
(ubuntu 12.04,灯栈)

在此先感谢,并为我糟糕的英语感到抱歉。

【问题讨论】:

  • 如果邮件内容对所有人都一样,请尝试将邮件发送给您,并把人转为密件抄送
  • 如果您需要每天发送超过 2000 封电子邮件,您需要像 Mail Chimp 或类似的商业解决方案。如果您的免费服务拥有如此庞大的受众,您可能可以让您的用户通过捐款或类似方式为其付费。
  • 不,您不能使用 PHP 或其他任何方式发送无限制的电子邮件——所有邮件服务都有限制。 Gmail 实际上非常慷慨,每天 2000 个。如果您需要更多,可以使用许多付费服务。其中一些非常便宜(每天几便士可以收到数千封电子邮件),但您不能免费获得。如果您不是每天发送那么多,则可以通过将批次拆分为多天来解决问题。
  • @YuriBlanc,请用英语写成,谢谢 -- @YuriBlanc,请用英文写,谢谢meta.stackexchange.com/questions/118678/… ;)
  • 你有一个专用的服务器,所以安装你自己的邮件服务器

标签: php email phpmailer bulk


【解决方案1】:

如果您运行自己的服务器并发送合法的电子邮件,那么您可以发送的电子邮件数量没有实际限制。您无需为每条消息支付费用,现在几乎所有垃圾邮件过滤都是由用户对他们的消息所做的 - 所以如果他们表现得好像您正在发送他们想要的东西(即他们阅读了它并且没有标记它作为垃圾邮件),您将不会有送达性问题。

没有什么可以说发送大量电子邮件的服务器一定会被列入黑名单,但如果新服务器突然开始发送大量邮件通常被认为是可疑的,所以慢慢增加它是个好主意,并且/ 或将您的发送分散到多个 IP。

我有使用 PHPMailer 发送大量邮件的自建网站 - 有时每个网站每天数百万 - 但您可能无法配置现成的服务器来执行此操作。 PHP 非常有能力每秒发送数百条消息,这主要取决于您的模板系统。

你必须对你的配置完全偏执:

  • 设置严格的 SPF
  • 用 DKIM 签名
  • 配置 DMARC
  • 您不能使用密件抄送来发送个性化消息
  • 不要发送附件
  • 保持消息小,链接到更大的内容
  • 确保您的邮件服务器 DNS 记录双向解析
  • 确保您有良好的退回处理能力(在 PHP 中很难)
  • 使用 VERP 寻址(有助于处理退回邮件)
  • 监控您的邮件服务器队列
  • 立即处理任何退订、垃圾邮件报告或黑名单
  • 始终始终对新订阅使用双重选择加入
  • 从不使用购买列表

所有这些东西本质上就是您使用 ESP 时所支付的费用,尽管他们经常会试图告诉您其他情况,但没有什么能阻止您自己做这一切 - 俗话说,免费这么久因为你的时间没有价值!

正如其他人所提到的,RSS 或通知可以让您减少需要通过电子邮件发送的数量。

【讨论】:

  • 每天发几千次,做不到一半的论文,这里真的超载
【解决方案2】:

您可以创建一个脚本来限制在给定时间段内发送的电子邮件数量。例如,每分钟 20 封电子邮件等于一小时内发送 1200 封电子邮件,并且低于您的服务限制。 (大多数共享服务器也限制每小时的电子邮件)。在这种情况下,“脚本”应该在浏览器页面保持打开的情况下运行,因为它在给定时间发送新请求。 (例如查看 Joomla Cms 的 acymailing 扩展)

另一个选项是 cronjobs。 How to send emails via cron job usng PHP mysql

【讨论】:

  • 我已经使用 cronjob 来调用发送电子邮件的脚本,但我的是一个“每日邮件”,基本上告诉用户它当天的电视节目,所以它需要在早上每个用户
  • 我明白了。我认为最合适的方式是使用商业服务,因为在这种情况下,您需要(例如)发送 4000 封不同的电子邮件@mornign。我看不到实用的解决方案。顺便说一句,为什么不使用 RSS 提要和/或移动应用等不同技术通知您的用户?
  • 问题是,我的服务是免费的,我没有钱支付商业服务(或创建应用程序)。我现在每天早上发送 3000 封电子邮件,而且这个数字还在增长。
  • 使用其他通信机制,如 RSS 提要。您可以制作用户特定的提要。用户只需浏览网页即可,如果您可能需要,可以在移动应用中轻松使用。
  • 但几乎没有人使用我用户的 RSS 提要。每个人都只想保持通知,而电子邮件(几乎)是不花太多钱就能做到这一点的唯一方法
【解决方案3】:

将您的服务器配置为邮件服务器,这样您就可以根据需要发送任意数量的邮件,而无需依赖外部服务器。

【讨论】:

  • 如果您发送过多,您的服务提供商可能不会在专用服务器中接受这种行为,并且您可能会被列入黑名单。 (我不是系统管理员,所以不要太在意)
  • 已经发布了关于如何防止被列入黑名单的指南。您必须实施 SPF,并且邮件必须遵守一些规则。
  • @yuri 有一个专用服务器,您不必回答任何人
  • @Dagon 是的,您可以 - 虽然您可以控制您的服务器,但您仍然可能被列入黑名单或存在交付问题,因此您需要对您的配置保持偏执。
  • @Synchro 不同意这一点,我指的是关于专用机器不存在的“服务提供商”的评论
猜你喜欢
  • 2017-05-25
  • 1970-01-01
  • 2012-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-22
  • 2011-02-18
  • 2013-08-09
相关资源
最近更新 更多