2017-04-25 28 views
2

私は単純なsendgrid PHPスクリプトを使用して電子メールを送信しますが、ここで問題となるのは受信者を追加する必要があるためです。有益な情報を見つけて、受信者やメールを追加するためにここでどのように変更する必要があるのか​​を知っている人はいますか?Sendgrid php複数の受信者に送信

function sendEmail($subject, $to, $message) { 
    $from = new SendGrid\Email(null, "[email protected]"); 
    $subject = $subject; 

    $to = new SendGrid\Email(null, $to); 
    $content = new SendGrid\Content("text/html", $message); 
    $mail = new SendGrid\Mail($from, $subject, $to, $content); 

    $apiKey = 'MY_KEY'; 
    $sg = new \SendGrid($apiKey); 

    $response = $sg->client->mail()->send()->post($mail); 
    echo $response->statusCode(); 
} 
+1

は、メールアドレスごとに関数を呼び出します。 – muttonUp

+0

コードサンプルお願いしますか? –

+1

本当ですか?アドレスをループして関数を呼び出します。 – muttonUp

答えて

3

SendGrid\MailクラスはSendGrid\Personalizationクラスを介して複数のtoアドレスを追加サポートしています。あなたの電子メールの封筒としてPersonalizationhttps://github.com/sendgrid/sendgrid-php/blob/master/examples/helpers/mail/example.php#L31-L35

思う:

現在地の例を見ることができます。受信者のアドレスやその他の同様のデータを保持します。各Sendgrid\Mailオブジェクトには、少なくとも1つのPersonalizationが必要です。

使用しているコンストラクタを通じて、Personalizationオブジェクトがすでに作成され、ここを参照してください:https://github.com/sendgrid/sendgrid-php/blob/master/lib/helpers/mail/Mail.php#L951-L958

をあなたはMailオブジェクトwithout this以降add your ownPersonalizationを作成することができます。

+0

これをやってくれてありがとう、ありがとう、私は最終的なコードを貼り付けた。 –

+1

@ SuperMario'sYoshiあなたが助けてくれたらこの答えを受け入れるべきです。 – ceejayoz

2

これは私がこれをどうやって管理したかで、うまくいきます。

function sendEmail($subject, $to, $message, $cc) { 
$from = new SendGrid\Email(null, "[email protected]"); 
$subject = $subject; 

$to = new SendGrid\Email(null, $to); 
$content = new SendGrid\Content("text/html", $message); 
$mail = new SendGrid\Mail($from, $subject, $to, $content); 

foreach ($cc as $value) { 
    $to = new SendGrid\Email(null, $value); 
    $mail->personalization[0]->addCC($to); 
} 

$apiKey = 'MY_KEY'; 
$sg = new \SendGrid($apiKey); 

$response = $sg->client->mail()->send()->post($mail); 
echo $response->statusCode(); 

}

1
function makeEmail($to_emails = array(),$from_email,$subject,$body) { 
    $from = new SendGrid\Email(null, $from_email); 

    $to = new SendGrid\Email(null, $to_emails[0]); 
    $content = new SendGrid\Content("text/plain", $body); 
    $mail = new SendGrid\Mail($from, $subject, $to, $content); 
    $to = new SendGrid\Email(null, $to_emails[1]); 
    $mail->personalization[0]->addTo($to); 

    return $mail; 
} 

function sendMail($to = array(),$from,$subject,$body) { 

    $apiKey = 'your api key'; 
    $sg = new \SendGrid($apiKey); 
    $request_body = makeEmail($to ,$from,$subject,$body); 
    $response = $sg->client->mail()->send()->post($request_body); 
    echo $response->statusCode(); 
    echo $response->body(); 
    print_r($response->headers()); 
} 

$to = array('[email protected]','[email protected]'); 
$from = '[email protected]'; 
$subject = "Test Email Subject"; 
$body = "Send Multiple Person"; 

sendMail($to ,$from,$subject,$body); 
関連する問題