我知道 - 已经有关于此的讨论,但他们都没有帮助。
我想要的只是发送一个简单的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邮件。^^)
还有其他提示吗?我不知道如何调试这个...电子邮件打印对我来说没问题。
答案 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视图文件