2016-10-22 4 views
5

私はこのスクリプトを使用してcURLを介して電子メールを送信しています。 私はsendgridライブラリを使用していません。すでにAPIドキュメントを見ています。複数の "to"アドレスに送信するオプションが欲しいです。どのようにこれを正しく行うことができますか?SendGrid - cURLを使用して複数の "to"アドレスに送信しますか?

+1

これは 'cURL'やphpに関する質問ではありません。使用しているAPIのドキュメントを調べる必要があります。私たちは、そのAPIが許すか、または期待していることを魔法のように_guess_することはできません。 – arkascha

+0

私は自分のPHPライブラリを使用していません。 – bbglazer

+1

特に実装を使用しない場合は、要求の送信がどのように見えるかを知る必要があります。彼らだけがそれに答えることができます。どのように解釈するかは彼らだけが知っている。 – arkascha

答えて

1
$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); 

(例えばV2 APIの)SendGrid APIドキュメントを見:https://sendgrid.com/docs/API_Reference/Web_API/mail.html

これはまた、複数の場所に送信する、配列として渡すことができます。 例:[] = [email protected] [] = [email protected]

に&ですから、配列としてPARAMするために、この$を追加することができますに:

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

2つのアドレスを持つ配列に$を付けると、それは機能しません。 – bbglazer

+0

使用しているAPIのバージョンは?私の例はAPI v2に関するものです。おそらくいくつかの違いがありますか? (v3などを使用している場合) –

+0

この場合、 '$ params'配列は多次元配列なので、cURLを追加の要件で設定する必要があります。たとえば、$ headr []に '' Content-type:multipart/form-data ''を追加し、配列を' http_build_query() 'に渡す必要があります。この質問を見て - > http://stackoverflow.com/questions/3772096/posting-multidimensional-array-with-php-and-curl –

0

はここSendGridが行う方法ですそれは文書の中で:Sending a Basic Email to Multiple Recipientsです。

例では、to文字列は、ネイティブのSMTP TO:の値です。したがって、配列を使用することはできませんが、コンマで区切って複数のアドレスを指定することができます。これらのメッセージはそれぞれSendGridによって処理され、各受信者は古典的な「会話」スタイルでお互いのアドレスをすべて表示します。

SendGridの「複数の人に同じメールを明確に送信する」機能を利用するには、上記のようにv3 APIを活用する必要があります。その後、

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

とあなたの$のparam配列にそれを追加します:ような配列内のAPI V2ストアの電子メールの場合

0

は、それが私のために働いた

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

を試してみてください。

関連する問題