Codeigniter发送html邮件

时间:2013-06-10 17:00:18

标签: html codeigniter sendmail

我知道 - 已经有关于此的讨论,但他们都没有帮助。

我想要的只是发送一个简单的html邮件 - 用:

    $this->load->library('email');
    $this->email->from('me@myadress.de', 'My name');
    $this->email->to('me@home.de');
    $this->email->subject('Email Test');
    $this->email->message('test'); # for test only - normally I load a html view
    $this->email->send();

使用默认配置($config['mailtype'] = 'text';)可以正常工作,但当我将其更改为$config['mailtype'] = 'html';时 - 我只是

无法使用PHP mail()发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。

我找到的唯一答案是使用SMPT - 但我更喜欢使用sendmail的解决方案。 (我很确定sendmails支持HTML邮件。^^)

还有其他提示吗?我不知道如何调试这个...电子邮件打印对我来说没问题。

1 个答案:

答案 0 :(得分:0)

如果您想将html作为电子邮件发送,请查看以下控制器文件

class Mail extends CI_Controller {

function __construct()
{
    parent::__construct();
    $this->load->helper(array('form', 'url'));
}


    public function index()
{       
    $config = array(
        'protocol' => 'smtp',
        'smtp_host' => 'tls://smtp.gmail.com',
        'smtp_port' => 465,
        'smtp_user' => 'xxx@gmail.com',
        'smtp_pass' => '*********',
        'mailtype'  => 'html',
        'charset'   => 'utf-8'
    );

    $this->load->library('email', $config);
    $this->email->set_newline("\r\n");
    $this->email->from('xxx@gmail.com');

    $this->email->to("yyyy@gmail.com");

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

    $body = $this->load->view('welcome_message',null,TRUE);

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

    if (!$this->email->send()){
        echo 'fail to load email';
    }
    else {
        echo 'success to send email';
    }
}

}

其中welcome_message是您要作为邮件正文发送的html视图文件