Codeigniter:在循环发送多封电子邮件时,未清除上次电子邮件的电子邮件附件

ani*_*ils 13 php email attachment

我的代码在附件中循环发送多封电子邮件,

问题是最后(以前所有)电子邮件的附件被附加到下一封电子邮件.

恩.假设3个电子邮件在数据库中,每个电子邮件中有1个附件(a1.pdf,a2.pdf,a3.pdf),然后它会发送带有附件的电子邮件

电子邮件1:

附件:a1.pdf

电子邮件2:

附件:a1.pdf,a2.pdf

电子邮件3:

附件:a1.pdf,a2.pdf,a3.pdf

我正在使用codeigniter框架.

我的代码是(这个代码在循环中调用)

...

$这 - >的电子邮件 - >受试者(本期特价货品$>受试者);

        $this->email->message($message);
        $attachments='';
        if(strlen($item->attachment) > 5)
        {
            $attachments = explode(',', $item->attachment);
            foreach($attachments as $attachment)
            {
                if(strlen($attachment)>5)
                $this->email->attach(FCPATH . 'attachments/' . $attachment);                    
            }                

        }

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

...

maa*_*cls 20

您需要在CodeIgniter中重置它.

在循环结束时添加:

$this->email->clear(TRUE);
Run Code Online (Sandbox Code Playgroud)

这会重置所有电子邮件变量,包括附件,允许您创建新邮件.


dak*_*dad 15

您需要使用$this->email->clear();清除循环中设置的变量.阅读手册.