我试图用Codeigniter的电子邮件类发送HTML电子邮件。我就是这样做的:
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'a@a.com',
'smtp_pass' => 'password',
'mailtype' => 'html',
'charset' => 'iso-8859-1'
);
$this->load->library('email', $config);
$this->email->from('b@b.com', 'Me');
$this->email->to($email);
$this->email->subject($subject);
$this->email->message($html);
$this->email->set_newline("\r\n");
if($this->email->send()){
return true;
}else{
return false;
}然而,当我在Gmail或outlook中查看电子邮件时,我看到一堆HTML显示在电子邮件的顶部,其余的邮件将正常显示。
这里是我要发送的HTML,它是我找到的一个测试模板。第1至第19行显示为普通文本,未呈现。
这是电子邮件的外观。
为什么是这种情况?
发布于 2011-06-25 23:25:30
作为我们在问题评论中对话的总结,问题似乎是$html变量的内容。该变量包含实体编码的HTML。通过html_entity_decode运行它解决了这个问题。
发布于 2011-06-25 21:49:29
未呈现的HTML代码似乎是模板的标题。也许Gmail将只显示标记body中的代码,因为Gmail是一个web应用程序,因此它显示在已经包含头和正文(<html><head><body>)的网页中。
https://stackoverflow.com/questions/6480315
复制相似问题