如何向多个收件人发送电子邮件?

时间:2013-05-23 15:39:19

标签: php mysql email

我的申请表需要很长时间才能提交。有时也会重复发送电子邮件,在错误日志中我可以看到这个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);
    }

1 个答案:

答案 0 :(得分: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()功能发送的电子邮件通常会自动放入垃圾邮件文件夹中。