2011-09-12 95 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'字段中),該電子郵件中的每個人都可以看到所有的目標消息。

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

請注意! :)

相關問題