使用带有codeigniter的HTML Mail模板

时间:2013-05-15 06:40:00

标签: php codeigniter

我正在使用codeigniter电子邮件类在用户注册我的网站或在我的网站内执行某些活动时发送电子邮件。

问题是,通过下面这个简单的代码,我只能发送非常简单的HTML电子邮件。而且我还必须将整个HTML消息传递给该函数。有没有办法让我可以在函数本身中加载整个模板,只需传递一条消息,就像我们在带有视图的codeigniter中那样放在模板中。

$message = 'Thank you for your order \n';
$message .= 'We will contact you soon';
$this->email($message);

public function email($message = NULL){
    $this->load->library('email');

    $this->email->mailtype('html');
    $this->email->from('abbbba@gmail.com', 'Sohan Kc');
    $this->email->to('abbbbaa@gmail.com'); 

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

    $this->email->send();
}

2 个答案:

答案 0 :(得分:4)

为什么不像你刚才所说的那样做? :) 电子邮件类消息方法需要传递字符串。只需加载一个View并将返回的字符串传递给方法。

public function email($message = NULL){
    $this->load->library('email');

    $mydata = array('message' => 'I am a message that will be passed to a view');
    $message = $this->load->view('my_email_template', $mydata, true);        

    $this->email->mailtype('html');
    $this->email->from('sohanmax2@gmail.com', 'Sohan Kc');
    $this->email->to('sohanmax02@gmail.com'); 

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

    $this->email->send();
}

答案 1 :(得分:0)

我发送电子邮件但是将html代码作为正文,我必须添加标题以获得如下所示的正确内容,这样就可以了。

$ this-> email-> set_header('MIME-Version','1.0; charset = utf-8');

$ this-> email-> set_header('Content-type','text / html');