2017-06-10 17 views
0

Codeigniter、Mailgun with SMTPを使用して多くの受信者に電子メールを送信したいと思います。Codeigniter + Mailgun + recipient変数

私のセットアップは、上記

  $config['mailtype'] = 'html'; 
     $config['charset'] = 'utf-8'; 

     $config['protocol'] = 'smtp'; 
     $config['smtp_host'] = 'ssl://smtp.mailgun.org'; 
     $config['smtp_port'] = 465; 
     $config['smtp_user'] = '[your Mailgun SMTP username]'; 
     $config['smtp_pass'] = '[your Mailgun SMTP password]'; 
     $config['smtp_timeout'] = '4'; 
     $config['crlf'] = '\n'; 
     $config['newline'] = '\r\n'; 

$arr = array(
'[email protected]' => array(
     'id' => '3123213', 
    ), 
    '[email protected]' => array(
     'id' => '423423423', 
    ) 
); 

$this->email->set_header('X-Mailgun-Recipient-Variables',json_encode($arr)); 
$this->email->from('[email protected]'); 
$this->email->to('[email protected],[email protected]'); 
$this->email->subject("Subject"); 
$message = 'Message'; 
$this->email->message($message); 
$this->email->send(); 

は私のセットアップです。電子メールは送信されますが、各受信者は他の受信者を見ることができます。これはX-Mailgun-Recipient-Variablesが正しく設定されていないためです。

説明はここにありますhttps://documentation.mailgun.com/user_manual.html#batch-sendingしかし、私は本当に何が間違っていたのか分かりません。

私はあなたがto複数の受信者に送信されますので、はい、彼らはお互いを見ることができます任意の助け

答えて

0

ためappriciateだろう。

あなたがする必要があるのは、電子メールで配列を作成し、foreachループを実行して一度に1つのto宛てに電子メールを送信することです。

はこれを試してみてください:

$addresses = array('[email protected]','[email protected]'); 
foreach ($addresses as $to){ 
    $this->email->set_header('X-Mailgun-Recipient-Variables',json_encode($arr)); 
    $this->email->from('[email protected]'); 
    $this->email->subject("Subject"); 
    $message = 'Message'; 
    $this->email->message($message);  
    $this->email->to($to); 
    $this->email->send(); 

    $this->email->clear(); 
} 

I)は、(約明確に忘れてしまいました。 (Email in loop sends the same file using Email class in Codeigniter)これは変数をリセットするために必要です。