我的数据库中有一个表,其中包含要发送的电子邮件。脚本定期作为cron作业运行,以从表中读取数据并通过SMTP服务器分发电子邮件。我在这里使用PHPMailer工作。该脚本运行一个循环,用于发送电子邮件,直到表中的所有电子邮件都已发送。
问题是发送的大多数连续电子邮件都有一个共同的主题。因此,当循环运行时,以某种方式发送的所有电子邮件都有很长的时间。名单。所以基本上如果5个电子邮件条目(具有不同的到地址)具有相同的主题和相同的内容,那么它最终只会在&#39中发送一封包含5个地址(每个电子邮件条目之一)的电子邮件;至'领域。这会向列表中的其他人显示每个人的电子邮件地址。这是不可取的,并且必须将电子邮件仅发送给其所指的那个人。
我不知道在这里玩什么。有什么建议吗?
答案 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()
}