【问题标题】:Codeigniter - Using codeigniter email library, how do i send the email to a database list?Codeigniter - 使用 codeigniter 电子邮件库,我如何将电子邮件发送到数据库列表?
【发布时间】:2018-08-22 06:37:35
【问题描述】:

因此,当使用 codeigniters 电子邮件类时,我意识到发送到单个电子邮件是;

    $this->email->to('email1@email.com');

多个电子邮件是一个数组,如下所示;

    this->email->to('one@example.com, two@example.com, three@example.com');

但是我如何向存储在数据库中的联系人列表发送电子邮件,例如..“联系人”表“电子邮件”字段..这可能吗?如果是这样,我该如何设置它?我使用模型等吗?我是 codeingiter 的新手,如果这很简单,请原谅

【问题讨论】:

  • 不要将一封电子邮件发送给一长串收件人——每个收件人都可以看到所有其他收件人。相反,遍历每个联系人并向每个收件人发送单独的电子邮件。或者更好的是,使用可以为您跟踪退回邮件的服务(ConstantContact、MailChimp、MailGun 等)。
  • 对于这个项目来说,这不是问题,但是我确实想过使用 mailgun,但是如果我能够在这种情况下找到解决方案,那么就不需要 mailgun @AlexHowansky

标签: php mysql database codeigniter email


【解决方案1】:

没有db表到email的原生映射,所以你必须先选择,然后检索然后发送

$query = $this->db->query("SELECT emailAddress from table"); //select email addresses
$sendTo=array();
foreach ($query->result() as $row) //loop to build array
{
    $sendTo[]=$row->emailAddress; //add to array
}

$this->email->to($sendTo);//send email 

当然,我不得不猜测您的表格电子邮件字段。另一个(更好?)选项是将发送放入循环中,因此您可以分别发送到每个电子邮件地址。

【讨论】:

  • 太棒了,谢谢,所以只是为了确认一下,我的模型中的顶级查询,我的控制器中的 foreach 循环,然后是电子邮件->我的电子邮件类库中的电子邮件
  • 你可以在一个地方完成这一切,这取决于你的编程“原则”。构建代码的方法比火星上的沙粒要多。
  • 当我尝试这个时,我得到 $sendTo 的未定义变量:/
  • @Jim123 $sendTo 在循环之前定义,然后填充到循环中.. 如果您的 dong 在控制器中,然后在您需要的其他地方使用它,请确保它在正确的范围内。但实际上我只能在这里看到所有代码、关系等问题。
  • 使用$this->sendTo 而不是$sendTo 可能对您有用,但目前无法知道
猜你喜欢
  • 1970-01-01
  • 2015-09-06
  • 2018-12-08
  • 2017-12-07
  • 2016-11-02
  • 2021-03-26
  • 2018-03-18
相关资源
最近更新 更多