【问题标题】:PHPMailer - Sending multiple emails to addresses stored in the mySQL databasePHPMailer - 向存储在 mySQL 数据库中的地址发送多封电子邮件
【发布时间】:2018-10-02 15:59:47
【问题描述】:

我有以下 sn-p 我正在尝试向多个地址发送电子邮件。

$recipients = array();

while ($row = mysqli_fetch_array($result)){   
    $recipients[] = $row;
}

$recipients = array(
   'user_1@domain.com' => 'user_1_name',
   'user_2@domain.com' => 'user_2_name',
);

foreach($recipients as $email => $name)
{
   $mail->addAddress($email, $name);
}

我需要用数据库中的内容动态填充电子邮件地址数组并尝试这样做。

$recipients[] = array(
    $row1['email'] => $row1['name']
    );

我收到以下错误,所以我知道我没有正确获取数组。感谢您对我在那里做错了什么的想法。

警告:trim() 期望参数 1 是字符串,数组在 /Applications/XAMPP...

编辑

PHPMailer 还会触发以下错误,我理解这是因为我尝试动态填充的数组没有从数据库中获取任何电子邮件地址。

邮件程序错误:您必须提供至少一个收件人电子邮件地址。

【问题讨论】:

  • “我收到以下错误” - 这是什么?
  • @FunkFortyNiner 在您发表评论时正在编辑!
  • “警告:trim() 期望参数 1 为字符串” - 该函数在哪里?
  • 那是class.phpmailer.php,这是PHPMailer中的一个类。我感觉它是因为数组中的错误而触发的。
  • 发送多封电子邮件....因为 GDPR,如果没有别的原因

标签: php phpmailer


【解决方案1】:

可以直接获取地址

$recipients = array();

while ($row = mysqli_fetch_array($result)){   
     $mail->addRecipent($row['email'], $row['name']);
}

附言更好地使用for

【讨论】:

  • 你怎么知道这些列在 SELECT 中,因此在 $row 中可用
  • @RiggsFolly 抱歉,我有问题
  • 嗯,我想没有人会在没有 SELECT 的情况下登陆这里。我想不用我绕过桑树丛,我可以采纳@Naumov 的这个建议
  • 小注密件抄送地址并非不可见(GDPR)
  • @Naumov $first 在这里做什么?
猜你喜欢
  • 1970-01-01
  • 2016-05-22
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-27
相关资源
最近更新 更多