2009-11-20 14 views
30

मुझे नहीं पता कि AddAddress PHPMailer फ़ंक्शन के लिए डेटा को स्वरूपित किया जाना चाहिए; मुझे एकाधिक प्राप्तकर्ताओं को ईमेल भेजने की आवश्यकता है इसलिए मैंनेPHPMailer AddAddress()

$to = "[email protected],[email protected],[email protected]"; 
$obj->AddAddress($to); 

पर कोई सफलता नहीं मिली। किसी भी तरह की सहायता को आभार समझेंगे।

+0

PHPMailer अब (मई 2015) एक पार्स समारोह के माध्यम से पता स्ट्रिंग इस तरह संभाल कर सकते हैं। [यह उत्तर] देखें (http://stackoverflow.com/a/30377848/333340) – Synchro

उत्तर

58

आपको प्रत्येक ई-मेल पते के लिए एक बार AddAddress फ़ंक्शन को कॉल करने की आवश्यकता है जिसे आप भेजना चाहते हैं। इस फ़ंक्शन के लिए केवल दो तर्क हैं: recipient_email_address और recipient_name। प्राप्तकर्ता का नाम वैकल्पिक है और यदि मौजूद नहीं है तो इसका उपयोग नहीं किया जाएगा।

$mailer->AddAddress('[email protected]', 'First Name'); 
$mailer->AddAddress('[email protected]', 'Second Name'); 
$mailer->AddAddress('[email protected]', 'Third Name'); 

आप ऐसे प्राप्तकर्ताओं की दुकान और फिर एक for पाश उपयोग करने के लिए एक सरणी इस्तेमाल कर सकते हैं। मुझे उम्मीद है यह मदद करेगा।

+1

हालांकि पहले 'AddAddress()' के बाद यह 'AddCC() 'के साथ दूसरों को जोड़ने के लिए और अधिक समझदारी होगी। – doub1ejack

+4

नहीं, यह वही नहीं है। – edditor

+1

मुझे लगता है कि इसका नया संस्करण $ mailer-> addAddress ([email protected] ',' name ') है; –

2
foreach ($all_address as $aa) { 
    $mail->AddAddress($aa); 
} 
+0

मानते हैं कि $ all_address सरणी है – popas

9

आपको प्रत्येक प्राप्तकर्ता के लिए AddAddress विधि को कॉल करने की आवश्यकता है। इस तरह:

$mail->AddAddress('[email protected]', 'Person One'); 
$mail->AddAddress('[email protected]', 'Person Two'); 
// .. 

चीजों को आसान बनाने के लिए, आपको ऐसा करने के लिए एक सरणी के माध्यम से लूप करना चाहिए।

$recipients = array(
    '[email protected]' => 'Person One', 
    '[email protected]' => 'Person Two', 
    // .. 
); 
foreach($recipients as $email => $name) 
{ 
    $mail->AddAddress($email, $name); 
} 

बेहतर अभी तक, उन्हें कार्बन कॉपी प्राप्तकर्ता के रूप में जोड़ें।

$mail->AddCC('[email protected]', 'Person One'); 
$mail->AddCC('[email protected]', 'Person Two'); 
// .. 

चीजों को आसान बनाने के लिए, आपको ऐसा करने के लिए एक सरणी के माध्यम से लूप करना चाहिए।

$to_array = explode(',', $to); 
foreach($to_array as $address) 
{ 
    $mail->addAddress($address, 'Web Enquiry'); 
} 
+1

कहना है, आपके आसान संस्करण अनावश्यक रूप से लंबे समय तक दिखते हैं। – Marcel

+0

यह एलन ओरोज्को के उत्तर की एक प्रति यहां है: http://stackoverflow.com/questions/3149452/php-mailer-multiple-address – redburn

3

ऊपर कुछ महान जवाब, कि जानकारी यहाँ का उपयोग कर मैं क्या एक ही मुद्दे को हल करने के लिए आज क्या किया है। के रूप में कई ईमेल आप एक वेब फार्म के साथ मांग पर चाहते हैं जोड़ने की क्षमता :: यहाँ कई ऐड पते के लिए एक उदाहरण के उपयोग के मामले में है

See it in action with jsfiddle here (छोड़कर php प्रोसेसर)

### Send unlimited email with a web form 
# Form for continuously adding e-mails: 
<button type="button" onclick="emailNext();">Click to Add Another Email.</button> 
<div id="addEmail"></div> 
<button type="submit">Send All Emails</button> 
# Script function: 
<script> 
function emailNext() { 
    var nextEmail, inside_where; 
    nextEmail = document.createElement('input'); 
    nextEmail.type = 'text'; 
    nextEmail.name = 'emails[]'; 
    nextEmail.className = 'class_for_styling'; 
    nextEmail.style.display = 'block'; 
    nextEmail.placeholder = 'Enter E-mail Here'; 
    inside_where = document.getElementById('addEmail'); 
    inside_where.appendChild(nextEmail); 
    return false; 
} 
</script> 
# PHP Data Processor: 
<?php 
// ... 
// Add the rest of your $mailer here... 
if ($_POST[emails]){ 
    foreach ($_POST[emails] AS $postEmail){ 
     if ($postEmail){$mailer->AddAddress($postEmail);} 
    } 
} 
?> 

तो यह क्या मूल रूप से "ईमेल []" नाम के साथ प्रत्येक क्लिक पर एक नया इनपुट टेक्स्ट बॉक्स उत्पन्न करना है।

[] अंत में जोड़ा गया यह पोस्ट करते समय इसे एक सरणी बनाता है।

फिर हम पीएचपी पक्ष जोड़ने पर "foreach" के साथ सरणी के प्रत्येक तत्व के माध्यम से जाना:

$mailer->AddAddress($postEmail); 
0

सभी उत्तरों महान हैं:

$recipients = array(
    '[email protected]' => 'Person One', 
    '[email protected]' => 'Person Two', 
    // .. 
); 
foreach($recipients as $email => $name) 
{ 
    $mail->AddCC($email, $name); 
} 
संबंधित मुद्दे