如何让PHPmailer发送一封包含多个'to'地址的电子邮件?

时间:2013-02-27 22:16:04

标签: php phpmailer

我的数据库中有一个表,其中包含要发送的电子邮件。脚本定期作为cron作业运行,以从表中读取数据并通过SMTP服务器分发电子邮件。我在这里使用PHPMailer工作。该脚本运行一个循环,用于发送电子邮件,直到表中的所有电子邮件都已发送。

问题是发送的大多数连续电子邮件都有一个共同的主题。因此,当循环运行时,以某种方式发送的所有电子邮件都有很长的时间。名单。所以基本上如果5个电子邮件条目(具有不同的地址)具有相同的主题和相同的内容,那么它最终只会在&#39中发送一封包含5个地址(每个电子邮件条目之一)的电子邮件;至'领域。这会向列表中的其他人显示每个人的电子邮件地址。这是不可取的,并且必须将电子邮件仅发送给其所指的那个人。

我不知道在这里玩什么。有什么建议吗?

3 个答案:

答案 0 :(得分:2)

你在做这样的事吗?

$mailer = new PHPMailer();

while($row = fetch_from_db()) {
   $mailer->AddAddress($row['email']);
   $mailer->send();
}

如果是这样,你需要做一个

$mailer->ClearAllRecipients()

发送每封电子邮件后,您开始使用“新鲜的”To:列表。

答案 1 :(得分:0)

1,从你的数据库中获取联系人

$contacts = 'GET CONTACTS ARRAY FROM DB'
        if(!empty($contacts)){
            foreach ($contacts as $crt_contact){
               $emails[] = $crt_contact->email ;
            }
        }

第二次使用以下内容创建“到”字段

$to = implode(',', array_unique($emails));

使用$to发送邮件()功能

答案 2 :(得分:0)

while($row = fetch_from_db()) {
   $mailer->AddAddress($row['email']);
   $mailer->send();
   $mailer->ClearAllRecipients()
}