2011-09-12 9 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 मुझे यकीन नहीं है। हालांकि, आरएफसी 2822 में कहा गया है कि "पात्रों की प्रत्येक पंक्ति 998 वर्णों से अधिक नहीं होनी चाहिए, और सीआरएलएफ को छोड़कर 78 से अधिक वर्ण नहीं होना चाहिए।" 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 को $ [] = $ पंक्ति ['पता'] के रूप में भी लिखा जा सकता है; बहुत कम पात्रों के साथ। :) –

0

मैंने आपके द्वारा प्रस्तुत किए गए कोडों का परीक्षण किया और उनका उपयोग करने से पहले, लोगों को यह जानने की ज़रूरत है कि इस तरह से ('to' फ़ील्ड में एकाधिक पते), उस ईमेल में प्रत्येक व्यक्ति सभी destinatars देख सकते हैं।

इसके अलावा, यदि आप बीसीसी का उपयोग कर रहे हैं, तो वे सूची में पहले व्यक्ति को भी जानेंगे।

ध्यान रखें! :)

संबंधित मुद्दे