2017-06-10 5 views
0

Ich möchte E-Mail an viele Empfänger mit Codeigniter, Mailgun mit SMTP senden.Codeigniter + Mailgun + Empfänger Variablen

Mein Setup ist

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

Über meinem Setup ist. E-Mails werden gesendet, aber jeder Empfänger kann andere Empfänger sehen - und ich nehme an, weil ich die X-Mailgun-Empfänger-Variablen falsch eingerichtet habe.

Anweisungen sind hier https://documentation.mailgun.com/user_manual.html#batch-sending, aber ich weiß wirklich nicht, was ich falsch gemacht habe.

Ich werde für jede Hilfe

Antwort

0

Sie senden to mehrere Empfänger und so appriciate sein ja werden sie einander sehen.

Was Sie tun müssen, ist ein Array mit Ihren E-Mails erstellen und dann eine foreach-Schleife und senden Sie E-Mails an nur einen Empfänger to zu einem Zeitpunkt.

Try this:

$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(); 
} 

ich klar vergessen(). (Email in loop sends the same file using Email class in Codeigniter) Dies ist notwendig, um die Variablen zurückzusetzen.