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

标签 php codeigniter email

在我的 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/

相关文章:

javascript - Ajax 请求似乎被调用了两次,但是其他 javascript 以及 Ajax 请求只被调用了一次

带有codeigniter框架的php

php - Codeigniter 使用复选框删除多行

codeigniter - Form_validation 错误进入数组

amazon-web-services - 如何创建通过 HTTP 发送 Amazon SES 电子邮件所需的 HMAC 签名?

email - Log4j 电子邮件错误 "Cannot find java.home ??"

javascript - 如何将data-id发送到另一个页面

php - 合并/合并日期范围的算法

php - 将引导日期选择器中的日期插入 MySQL 日期字段不起作用

javascript - 如何通过nodemailer同步发送邮件?