2011-09-12 98 views
23

我有这样的代码:PHP邮件:多个收件人?

<?php 
include("db.php"); 

$result = mysql_query("SELECT * FROM email"); 

while($row = mysql_fetch_array($result)) 
{ 
$to = $row['address']; 
} 
$subject = "Test mail"; 
$message = "Hello! This is a simple email message."; 
$from = "[email protected]"; 
$headers = "From:" . $from; 
mail($to,$subject,$message,$headers); 
?> 

在我的表( “电子邮件”)我有多个地址。 (他们不是逗号。) 我怎么能发送我的消息到所有这些地址?

回答

36
while($row = mysql_fetch_array($result)) 
{ 
    $addresses[] = $row['address']; 
} 
$to = implode(", ", $addresses); 

作为对mail() manual page指定地址的“到”函数的参数可以采用逗号分隔的列表。

+1

@Amber是否有电子邮件地址的限制?谢谢 – mgraph

+2

@mgraph我不确定。尽管如此,在RFC 2822中提到:“每行字符必须不超过998个字符,且不应超过78个字符,不包括CRLF。” http://www.faqs.org/rfcs/rfc2822.html – JeromeJ

6

用逗号分隔地址。

$to=array(); 
while($row = mysql_fetch_array($result)) { 
    array_push($to, $row['address']); 
} 

... 

mail(implode(',', $to), $submit, $message, $headers); 
+5

你的第3行也可以写成$ [] = $ row ['address'];字符少得多。 :) –

0

我刚刚测试了您提供的代码,在使用它们之前,人们需要知道使用这种方式(多个地址在'to'字段中),该电子邮件中的每个人都可以看到所有的目标消息。

此外,如果您使用密件抄送,他们也会知道列表中的第一个人。

请注意! :)

相关问题