首页 文章

Codeigniter Mailgun收件人变量

提问于
浏览
0

我想使用Codeigniter,带有SMTP的Mailgun向许多收件人发送电子邮件 .

我的设置是

$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(
 'firstEmail@email.com' => array(
      'id' => '3123213',
      ),
  'secondEmail@email.com' => array(
      'id' => '423423423',
   )   
);

$this->email->set_header('X-Mailgun-Recipient-Variables',json_encode($arr));
$this->email->from('myEmail@email.com');
$this->email->to('firstEmail@email.com,secondEmail@email.com');
$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但我真的不知道我做错了什么 .

我会很乐意为你提供任何帮助

1 回答

  • 0

    您正在发送 to 多个收件人,所以是的,他们会看到对方 .

    您需要做的是使用您的电子邮件创建一个数组,然后执行foreach循环并一次只向一个 to 收件人发送电子邮件 .

    试试这个:

    $addresses = array('firstEmail@email.com','secondEmail@email.com');
    foreach ($addresses as $to){
        $this->email->set_header('X-Mailgun-Recipient-Variables',json_encode($arr));
        $this->email->from('myEmail@email.com');
        $this->email->subject("Subject");
        $message = 'Message';
        $this->email->message($message);    
        $this->email->to($to);
        $this->email->send();
    
        $this->email->clear();
    }
    

    我忘了清楚() . (Email in loop sends the same file using Email class in Codeigniter)这是重置变量所必需的 .

相关问题