【问题标题】:How can I send emails to multiple recipients? [duplicate]如何向多个收件人发送电子邮件? [复制]
【发布时间】:2013-05-19 01:37:27
【问题描述】:

我的申请表需要很长时间才能提交。有时电子邮件会重复,并且在错误日志中我可以看到这个 PHP 警告:mail() [<a href='function.mail'>function.mail</a>]: Could not execute mail delivery program '/usr/sbin/sendmail -t -i'
这是我的代码:

    $emails = mysql_query('select * from owners where status ="active"');

    while($row = mysql_fetch_assoc($emails)){

        $to = $row['s_email'];
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $headers .= 'From: mysitename  <noreply@mysitename.com' . "\r\n";
        mail($to, $subject, $message, $headers);
    }

【问题讨论】:

  • 您的From 地址格式错误

标签: php mysql email


【解决方案1】:

要将电子邮件发送给多个收件人,请用逗号分隔每个电子邮件地址。您可以使用implode() 函数在一行中执行此操作,而不是循环。

要回答您的问题,可能是内存泄漏。试试我的解决方案,用我的代码替换你的代码:

$emails = $pdo->prepare("SELECT * FROM owners WHERE status = 'active'");
$emails->execute()->fetchAll();

mail(implode(', ', $emails), $subject, $message, $headers);

另外,请避免使用mysql_* 函数。它们已被弃用。请改用PDO。更多信息可以在here找到。


您可能还想研究 cron 作业。使用mail() 功能发送的电子邮件通常会自动放入垃圾邮件文件夹。

【讨论】:

  • 确实如此,但它认为不会解决错误信息“Could not execute mail delivery program '/usr/sbin/sendmail -t -i'”
  • 哦,对不起。标题误导了我。也许这应该改变。我会尽快修改我的答案。
  • 我可以试试你上面的代码吗-MR.terry harvey
  • 但是在“to”中它显示了所有的电子邮件 ID,我该如何隐藏它或者我可以使用 cc 吗?
  • @user168818 使用密件抄送标头。
猜你喜欢
  • 2019-03-01
  • 2012-05-18
  • 2019-04-22
  • 2013-09-02
  • 2017-12-05
  • 2015-08-29
  • 1970-01-01
相关资源
最近更新 更多