当前位置: 首页 > 知识库问答 >
问题:

如何不使PHPmailer发送具有多个到地址的电子邮件?

松铭
2023-03-14

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

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

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

共有3个答案

林富
2023-03-14

第一,从数据库获取联系人

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

第2步:使用以下内容创建"to"字段

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

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

冉丰茂
2023-03-14
while($row = fetch_from_db()) {
   $mailer->AddAddress($row['email']);
   $mailer->send();
   $mailer->ClearAllRecipients()
}
花永昌
2023-03-14

你在做这样的事吗?

$mailer = new PHPMailer();

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

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

$mailer->ClearAllRecipients()

在您发送每封电子邮件之后,您将从一个“新”的收件人列表开始:列表。

 类似资料:
  • 我使用PHPMailer发送电子邮件,我使用此代码添加要发送到的电子邮件地址: 它适用于一封电子邮件,但不适用于多封电子邮件。 我听到一个错误,说 您必须提供至少一个收件人电子邮件地址。

  • 我正在使用PHPmailer发送电子邮件。到目前为止,我成功地将电子邮件发送到一个地址。现在,我想在一次点击中发送多封电子邮件。 问题:我曾尝试使用下面的一些循环发送多封电子邮件,但我输出错误。是的,它发送电子邮件,但只发送到一个地址,并且该电子邮件地址将获取所有应该发送到其他电子邮件的电子邮件。 例如,当我发送17封电子邮件时,这17封电子邮件只发送到一个地址。电子邮件应根据数据库中的地址发送,

  • 我正在尝试通过PHPMailer发送电子邮件,它工作得很好。只有一个问题,我不知道如何解决。有可能,我可能需要尝试发送电子邮件到一个无效的地址,因为一个不存在的域。因为域名不存在,所以这些电子邮件不会被发送也没关系。当我尝试发送电子邮件时,会收到一条错误消息,PHPMailer将停止,并且不会继续向其他(有效)地址发送电子邮件。有没有办法跳过那些无效的电子邮件并强制PHPMailer继续而不显示错

  • 如果PhpMailer包含堆栈(例如。它总是返回“无效地址”错误。 有没有办法忽略这张支票?还是有充分的理由?我似乎在代码中找不到它,因此我没有在这里包含它。 非常感谢您的帮助。

  • 如果PhpMailer包含堆栈(例如。它总是返回“无效地址”错误。 有没有办法忽略这张支票?还是有一个很好的理由?我似乎在代码中找不到它,因此我没有在这里包含它。 非常感谢您的帮助。