如何不让PHPmailer发送多个'to'地址


How to not make PHPmailer send an email with multiple 'to' addresses?

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

问题是大多数连续发送的电子邮件都有一个共同的主题。所以当循环运行时,所有被发送的邮件都有一个很长的to列表。所以基本上,如果5个电子邮件条目(具有不同的地址)具有相同的主题和相同的内容,那么它最终只发送1个电子邮件与5个地址(每个电子邮件条目一个)在'to'字段中。这将向列表上的其他人显示每个人的电子邮件地址。这是不可取的,电子邮件必须只发送给一个人,这意味着。

我不知道这是怎么回事。有什么建议吗?

你在做这样的事情吗?

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

如果是,你需要做一个

$mailer->ClearAllRecipients()

在你发送每封邮件之后,所以你从一个"新鲜"的To:列表开始。

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

首先,从数据库中获取联系人

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

第二步,使用下面的代码创建"to"字段

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

使用$to发送邮件()函数