使用php向多个用户发送邮件

时间:2014-04-21 05:12:22

标签: php mysql

我正在尝试使用php向多个用户发送电子邮件,但遇到一些问题。我可以发送到电子邮件地址,但它显示到字段中的所有电子邮件地址。我想循环并将电子邮件分别发送给每个用户。

我的PHP代码是

这里我从MYSQL获取所有信息。

$r=mysql_query("SELECT * FROM user WHERE USER_ID='$user_id");
$r=mysql_fetch_array($r);
$emailfrom=$r['EMAIL_FROM'];
$emailpriority=$r['EMAIL_PRIORITY'];
$emailsubject=$r['EMAIL_SUBJECT'];
$emailto=$r['EMAIL_TO']; --> data stored here is the email addresses of the users.

它也已格式化 - >例如:test1 @ test.com,test2 @ test.com,test3 @ test.com etcc

电子邮件标题

$subject = "$emailsubject";
$mailer = "$emailfrom";
$headers = "From: $mailer \r\n";
$headers .= "Reply-To: $mailer\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "Importance: $emailpriority\r\n";

mail($emailto, $subject, $message, $headers); 

提前非常感谢你。

2 个答案:

答案 0 :(得分:1)

首先使用explode()解析字符串$emailto中的每个地址作为数组的成员。由于您的字符串是逗号分隔的,因此您需要将字符串','作为第一个参数传递:

$addresses = explode(',', $emailto);

这会生成一个地址数组,您可以循环遍历并为每次迭代分别执行mail()

foreach ($addresses as $recipient) {
    mail($recipient, $subject, $message, $headers); 
}

答案 1 :(得分:0)

你可以像zeantsoi所说的那样循环播放,或者你可以使用PHPMailer库来更好地满足你的要求。

您可以参考文档here