Codeigniter:循环发送多封电子邮件时,最后一封电子邮件的电子邮件附件未清除

发布于 2024-11-29 23:16:00 字数 932 浏览 0 评论 0原文

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

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

前任。假设数据库中有 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->电子邮件->主题($item->主题);

        $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();

。 。 。

My code sends multiple emails in loop with attachment,

Problem is attachments of last(previous all) emails get attached to next email.

ex. suppose 3 emails in database with 1 attachment in each(a1.pdf, a2.pdf, a3.pdf)
then,
it sends email with attachment as

email 1:

attachment :a1.pdf

email 2:

attachment :a1.pdf, a2.pdf

email 3:

attachment :a1.pdf, a2.pdf, a3.pdf

I am using codeigniter framework.

My code is (this code is called in loop)

.
.
.

$this->email->subject($item->subject);

        $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();

.
.
.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乞讨 2024-12-06 23:16:00

您需要在 CodeIgniter 中重置它。

在循环末尾添加:

$this->email->clear(TRUE);

这将重置所有电子邮件变量(包括附件),从而允许您创建新邮件。

You need to reset it in CodeIgniter.

At the end of the loop add:

$this->email->clear(TRUE);

This resets all email variables including the attachments, allowing you to create a new mail.

瞄了个咪的 2024-12-06 23:16:00

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

You need to use $this->email->clear(); to clean out the variables set within the loop. Read the manual.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文