电子邮件发送代码在codeigniter中显示错误

时间:2011-07-28 07:05:14

标签: php codeigniter

这是电子邮件sendind代码

function send_letter()

    {

        $description =  $this->input->post('description',true);

        $this->load->model('newsletter_model');

        $this->data['mail_list'] = $this->newsletter_model->getmaillist();

        $this->email->from('ashitha10@gmail.com', 'Imageinit');

        $this->email->subject('Email Test');

        $this->email->message($description);

        foreach($this->data['mail_list'] as $val)

        {

            $this->email->set_newline("\r\n");

            $this->email->to($val['emailid']);

            $this->email->send();

        }  


        $this->index();

    }

电子邮件成功发送到所有电子邮件。但主题如“nosubject”

同样出现错误

  

安全:通知

     

消息:未定义索引:主题

     

文件名:库/ email.php

     

行号:941

email.php 中第941行的内容

if ($this->protocol == 'mail')

        {

            $this->_subject = $this->_headers['Subject'];

            unset($this->_headers['Subject']);
        }

2 个答案:

答案 0 :(得分:1)

显然,unset标题Subject的代码位于方法_write_headers中,该方法是从_build_message调用的send调用的send。因此,每当您使用mail作为后端调用$this->_subject时,您的主题都会被删除(但是第一封邮件是可以的,因为主题存储在$this->email->subject('Email Test');中但是被一个空字符串覆盖了随后的电话也是如此。

这似乎是email.php中的一个错误,但作为一种解决方法,你可以在循环的每次迭代中设置主题(所以只需在foreach - 循环中移动to,也许在{{1}} - 召唤之后。

答案 1 :(得分:0)

使用此代码

function send_letter()

{

    $description =  $this->input->post('description',true);

    $this->load->model('newsletter_model');

    $this->data['mail_list'] = $this->newsletter_model->getmaillist();



    foreach($this->data['mail_list'] as $val)

    {

        $this->email->from('ashitha10@gmail.com', 'Imageinit');

        $this->email->subject('Email Test');

        $this->email->message($description);


        $this->email->set_newline("\r\n");

        $this->email->to($val['emailid']);

        $this->email->send();

    }  


    $this->index();

}