我使用CI库通过smtp发送HTML电子邮件。当我尝试从我的计算机发送时,它发送正确的HTML。但是当我从服务器发送它时,为什么我会得到HTML标签。没格式化为HTML?我已经将'mailtype'设置为'html'。
我想知道为什么它可以在我的本地工作,但不能在服务器上工作。在PHP中有任何配置吗?或者我应该发送电子邮件标题或什么?
public function index()
{
$config = array(
'protocol' => 'smtp',
'smtp_host' => 'tls://smtp.gmail.com',
'smtp_port' => 465,
'smtp_user' => 'xxxx',
'smtp_pass' => 'xxxx',
'mailtype' => 'html',
'charset' => 'utf-8'
);
$this->load->library('email', $this->config->item('email'));
$this->email->set_newline("\r\n");
$this->email->from('xxxx', 'xxxx');
$this->email->to("xxxx");
$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';
}
}
答案 0 :(得分:1)
除非您初始化配置选项,否则设置配置选项不起作用。在$config
数组后添加:
$this->email->initialize($config);
答案 1 :(得分:0)
根据我想的你想要做的事情:
$this->load->library('email', $this->config->item('email'));
应该是
$this->load->library('email', $config);
试着告诉我们。