2016-10-22 14 views
5

मैं इस स्क्रिप्ट का उपयोग curl के माध्यम से ईमेल भेजने के लिए कर रहा हूं। मैं प्रेषक पुस्तकालय का उपयोग नहीं कर रहा हूं और मैंने पहले ही एपीआई दस्तावेज़ों को देखा है। मैं एकाधिक "टू" पते पर भेजने का विकल्प चाहूंगा। मैं इसे ठीक से कैसे कर सकता हूं? SendGrid API दस्तावेज़ (जैसे v2 API के लिए) परSendGrid - curl का उपयोग कर एकाधिक "टू" पते पर भेजें?

$params = array(
    'to'  => $to, 
    'subject' => $title, 
    'text'  => 'Subject', 
    'from'  => '[email protected]', 
); 

$request = $url.'api/mail.send.json'; 
$headr = array(); 
// set authorization header 
$headr[] = 'Authorization: Bearer '.$pass; 

$session = curl_init($request); 
curl_setopt ($session, CURLOPT_POST, true); 
curl_setopt ($session, CURLOPT_POSTFIELDS, $params); 
curl_setopt($session, CURLOPT_HEADER, false); 
curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 

// add authorization header 
curl_setopt($session, CURLOPT_HTTPHEADER,$headr); 

$response = curl_exec($session); 
curl_close($session); 
+1

यह 'curl' या php के बारे में कोई प्रश्न नहीं है, आपको उस API के दस्तावेज़ों को देखना होगा जिसे आप उपयोग कर रहे हैं। हम जादुई रूप से _guess_ नहीं कर सकते हैं कि एपीआई क्या अनुमति देता है या उम्मीद करता है। – arkascha

+0

मैं उनकी PHP लाइब्रेरी का उपयोग नहीं कर रहा हूं। – bbglazer

+1

विशेष रूप से यदि आप उनके कार्यान्वयन का उपयोग नहीं करते हैं: आपको यह जानने की आवश्यकता है कि अनुरोध yiu भेजने की अपेक्षा कैसा दिखना चाहिए, shiuld संरचित किया जाना चाहिए। केवल वे इसका उत्तर दे सकते हैं। केवल वे जानते हैं कि वे कैसे व्याख्या करने की कोशिश करते हैं। – arkascha

उत्तर

1

देखो: https://sendgrid.com/docs/API_Reference/Web_API/mail.html

यह भी में एक सरणी के रूप में कई स्थानों पर भेजने के लिए पारित किया जा सकता है। उदाहरण: करने के लिए [] = [email protected] & को [] = [email protected]

तो तुम सरणी के रूप में परम को यह $ जोड़ सकते हैं: यहाँ कैसे SendGrid करता है

$to = ["[email protected]", "[email protected]"]; // etc. 
+0

यदि मैं दो पते के साथ एक सरणी में $ $ बनाता हूं, तो यह काम नहीं करता है। – bbglazer

+0

आप किस एपीआई का उपयोग करते हैं? मेरा उदाहरण एपीआई v2 चिंता करता है। शायद कुछ मतभेद हैं? (यदि आप v3, आदि का उपयोग करते हैं) –

+0

मुझे यह भी एहसास हुआ कि '$ params' सरणी इस मामले में बहुआयामी सरणी है, इसलिए curl को अतिरिक्त आवश्यकताओं के साथ सेट करना होगा। उदाहरण के लिए आपको $ headr [] 'सामग्री-प्रकार: मल्टीपार्ट/फॉर्म-डेटा "' में जोड़ना होगा और अपनी सरणी को 'http_build_query()' में पास करना होगा। इस सवाल को देखें -> http://stackoverflow.com/questions/3772096/posting-multidimensional-array-with-php-and-curl –

0

यह प्रलेखन में: Sending a Basic Email to Multiple Recipients

आपके उदाहरण में, to स्ट्रिंग मूल SMTP TO: मान है। तो आप एक सरणी का उपयोग नहीं कर सकते हैं, लेकिन आप एकाधिक पते की अल्पविराम-अलग स्ट्रिंग प्रदान कर सकते हैं। उन संदेशों में से प्रत्येक को SendGrid द्वारा संसाधित किया जाएगा, और प्रत्येक प्राप्तकर्ता क्लासिक "वार्तालाप" शैली में एक-दूसरे के सभी पते देखेगा।

यदि आप सेंडग्रिड का लाभ उठाना चाहते हैं तो "एकाधिक लोगों को एक ही ईमेल को स्पष्ट रूप से भेजें" क्षमता, आपको ऊपर के रूप में v3 API का लाभ उठाने की आवश्यकता होगी।

0

तरह सरणी में एपीआई V2 दुकान ईमेल के लिए:

$json_string = array(
'to' => array(
'[email protected]', '[email protected]' 
), 
'category' => 'test' 
); 

और फिर इसे अपने $ परम सरणी में जोड़ें:

'x-smtpapi' => json_encode($json_string), 

कृपया ध्यान दें कि इस मामले में सामान्य संबोधित करने के लिए, नहीं होगा एक ईमेल प्राप्त। अधिक विस्तार यहां जाएं: https://sendgrid.com/docs/Integrate/Code_Examples/v2_Mail/php.html

0

प्रयास करें

$params = array(
    'to[0]'  => $to1, 
    'to[1]'  => $to2, 
    'subject' => $title, 
    'text'  => 'Subject', 
    'from'  => '[email protected]', 
); 

यह मेरे लिए काम किया था।

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