在我的 Controller 中有一个用于向一个收件人发送电子邮件的代码,但我想向多个收件人发送邮件。不使用抄送、密送或直接赋值。我想通过前端输入逗号分隔的邮件 ID
如何以逗号分隔的形式获取每个邮件 ID?
Controller :
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);
}
查看:
<label>
<span>To:</span>
<input id="to_email" type="text" name="to_email[]" placeholder="To Email Address">
</label>
最佳答案
您可以使用收件人数组,或者如果它们存储在数据库中,您可以检索所有收件人并将其再次存储在数组中,而不是通过“,”将它们分解。
例如,如果您创建数组或从数据库中获取数组结果,
$recipients = Array('user1@gmail.com','user2@gmail.com''user3@gmail.com');
this->email->to(implode(', ', $recipients));
或者也可以原封不动地给多封邮件
this->email->to('user1@gmail.com','user2@gmail.com''user3@gmail.com');
这将向您发送多封邮件。
根据 Robins 评论进行编辑
当您评论说您希望从前端文本框中输入多个内容时,
如果它是单个文本框,您可以要求用户使用“,”分隔多个电子邮件。
$mails = $this->input->post('email');
this->email->to($mails);
如果您有多个文本框,请为所有文本框指定相同的名称,例如“email[]”
$mails = $this->input->post('email');
this->email->to(implode(', ', $mails));
关于php - 在 codeigniter 中向多个收件人发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31721450/