【问题标题】:Is there a way to send unique emails to multiple recipients without Loops, BCC or Pear::Mail in PHP?有没有办法在 PHP 中不使用 Loops、BCC 或 Pear::Mail 将唯一的电子邮件发送给多个收件人?
【发布时间】:2021-04-01 01:51:48
【问题描述】:

我知道这个问题与其他多个电子邮件收件人问题类似,但它们都没有给我一个我可以使用的解决方案...

我正在尝试向注册用户发送简报电子邮件。每个时事通讯都将包含一个“取消订阅”链接,该链接对每个用户都是唯一的。用户数量越来越多,这使得向他们发送新闻通讯变得越来越困难/效率低下。我已经阅读并尝试了不同的解决方案:

  1. 为每个用户发送一封带有mail() 的电子邮件。 IE。遍历用户并向每个用户发送一封电子邮件。优点是我可以为每个用户配置具有唯一“取消订阅”链接的电子邮件内容。但!这效率不高,PHP:s 手册不建议这样做:“邮件函数为每封电子邮件打开和关闭一个 SMTP 套接字,效率不高”。我注意到发送一封电子邮件大约需要 1 秒钟。
  2. 使用“密件抄送”将所有用户列为一封电子邮件中的收件人。这样效率更高,我只需要一次向所有用户发送一封电子邮件。但这意味着我不能包含每个用户唯一的“取消订阅”链接。
  3. 使用 Pear::Mail。这听起来很有趣......但是,对我来说这是不可能的,因为我的网站存在于网络托管服务上,并且我无法安装 Pear::Mail(或者我可以吗???)

这是我知道我可以使用的仅有的三种方法。但它们似乎对我来说都不够。还有其他解决方案可以看吗?还是我错过了什么?

【问题讨论】:

  • 我真的建议研究其他现有的事务性电子邮件解决方案,如 Mandrill、Mailgun 等。如果您不想使用这些,我建议为电子邮件创建一个作业队列.
  • 如果您使用共享主机,您的传出 SMTP 很可能配置了一些速率限制。在发送电子邮件之前,您不太可能找到配置的阈值,甚至不可能明确地检测到速率限制。如果 FUP 甚至允许这样做。您最好使用@Daan 的建议并使用事务性 API。

标签: php email


【解决方案1】:

从您自己的主机发送电子邮件,尤其是从共享主机发送电子邮件不是一个好主意。

随着用户的增长,您应该尝试使用任何事务性电子邮件服务提供商,例如 Mailgun、SendGrid 等。

现在让我们谈谈你应该如何处理它。

  1. 发送电子邮件需要时间,因此您需要创建一个作业队列之类的东西,以便在后台发送您的电子邮件。
  2. 您还可以使用 cron 作业不时运行脚本并批量发送电子邮件。

【讨论】:

    猜你喜欢
    • 2015-11-30
    • 2011-09-12
    • 2010-12-02
    • 2015-01-20
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    相关资源
    最近更新 更多