在 codeigniter 中向多个收件人发送邮件

rob*_*ins 3 php email codeigniter

在我的控制器中有一个向一个收件人发送电子邮件的代码,但我想向多个收件人发送邮件。不使用抄送、密送或直接赋值。我想通过前端输入逗号分隔的邮件 ID

如何以逗号分隔的形式获取每个邮件ID?

控制器:

public function shopshare($userid,$shopname,$shop_id)
{
    $from_email=$this->input->post('from_email');
    $to_email=$this->input->post('to_email');
    $subject_url=$this->input->post('url');
    $message=$this->input->post('message');
    $this->email->from($from_email);
    $this->email->to($to_email); 
    $this->email->subject($url);
    $this->email->message($message);    
    $this->email->send();

    redirect(base_url().'shop/shopDetail/'.$shop_id.'/'.$shopname);
}
Run Code Online (Sandbox Code Playgroud)

看法:

<label>
    <span>To:</span>
    <input id="to_email" type="text" name="to_email[]" placeholder="To Email Address">
</label>
Run Code Online (Sandbox Code Playgroud)

php*_*der 5

您可以使用收件人数组,或者如果他们存储在数据库中,您可以检索并再次将所有内容存储在数组中,而不是通过“,”来内爆它们。

例如,如果您创建数组或从数据库中获取数组结果,

 $recipients = Array('user1@gmail.com','user2@gmail.com''user3@gmail.com');

     this->email->to(implode(', ', $recipients));
Run Code Online (Sandbox Code Playgroud)

或者也可以按原样发送多封电子邮件

this->email->to('user1@gmail.com','user2@gmail.com''user3@gmail.com');
Run Code Online (Sandbox Code Playgroud)

这将向您发送多封邮件。

根据罗宾斯评论编辑

当您评论要从前端文本框中输入多个条目时,

如果它是单个文本框,您可以要求用户通过“,”分隔多个电子邮件。

 $mails = $this->input->post('email');

 this->email->to($mails);
Run Code Online (Sandbox Code Playgroud)

如果您有多个文本框,则为所有文本框赋予相同的名称,例如“email[]”

 $mails = $this->input->post('email');

 this->email->to(implode(', ', $mails));
Run Code Online (Sandbox Code Playgroud)