php邮件程序取消订阅大量电子邮件

时间:2015-08-20 11:26:54

标签: php email phpmailer

我使用php邮件程序

require ('phpMailer/PHPMailerAutoload.php');

发送群发电子邮件。我循环我的数据库的电子邮件,并将其添加到密件抄送。我想在每个Body中添加自定义取消订阅消息,但是当我尝试这样的事情时

foreach($list_mail as $db_mail) {
$unsub_email = ($db_mail[0]);
$unsubscribe1 = '<p><small>If you dont want to receive this, please click <a href="http://example.com/unsubscribe.php?email='; 
$unsubscribe2 = '">here</a></small></p>';
$email_text_unsub = $email_text . $unsubscribe1 . $unsub_email . $unsubscribe2;
$mail->Body = $email_text_unsub; }

我已将每封电子邮件中的最后列出的电子邮件放入网址中。我理解,如果我循环发送每封电子邮件(使用$ mail-&gt;发送),我可以发送一封大量的电子邮件,但需要定制的Body。 是不是有可能?

3 个答案:

答案 0 :(得分:2)

正如其他人所说,如果您一次向多个收件人发送邮件,那么它必须是相同的电子邮件内容 - 电子邮件的工作方式。它不是PHP或phpMailer的限制,它只是电子邮件的工作方式。

您的选择是:

  1. 向每个用户发送单独的邮件。正如您所说,这将导致您与提供商快速进入速率限制。您可以更改提供者,但每个人都有某种或那种限制。如果你真的需要发送大量的电子邮件,你最终会付钱。

  2. 拆分邮件列表,以便每天只发送到列表中。如果它是每日限制,这可以帮助您保持在速率限制范围内。 (但它不会对月度限制有所帮助)

  3. 使用专用的第三方电子邮件服务,例如https://sendgrid.com/。 Sendgrid (其他类似的提供商也存在)提供为营销邮件量身定制的SMTP邮件服务。他们的基本服务是免费的,每天最多可发送400封邮件。如果这个数字明显优于您自己的提供商,则可能值得考虑。 (他们还会为您提供一个显示统计信息的仪表板,以及您是否被标记为垃圾邮件等,因此还有额外的价值)

  4. 只需将相同的邮件发送给所有人,但使用通用的取消订阅链接即可。由于每个人都收到相同的邮件,因此取消订阅链接不能包含任何特定于用户的令牌,因此您的用户必须在取消订阅页面中输入他们的电子邮件地址,这对他们来说是一个小小的不便,但它确实允许您按原计划发送通过BCC。

答案 1 :(得分:1)

如果要向每个地址发送不同的邮件正文,则无法使用BCC。您必须发送与地址一样多的电子邮件。

答案 2 :(得分:0)

正如@ aurel.g所说,你必须发送个人信息才能实现。

BCC表示所有收件人都收到相同的邮件(因为只提交了一封邮件),因此无法按收件人自定义。

PHPMailer提供mailing list sending example,显示如何进行实际发送;您可以自行设计取消订阅机制。

如果您的主持人不允许您发送足够的内容,那么现在是时候寻找更好的主持人了。