我正在尝试使用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);
提前非常感谢你。
答案 0 :(得分:1)
首先使用explode()
解析字符串$emailto
中的每个地址作为数组的成员。由于您的字符串是逗号分隔的,因此您需要将字符串','
作为第一个参数传递:
$addresses = explode(',', $emailto);
这会生成一个地址数组,您可以循环遍历并为每次迭代分别执行mail()
:
foreach ($addresses as $recipient) {
mail($recipient, $subject, $message, $headers);
}
答案 1 :(得分:0)