我必须向用户发送电子邮件,但电子邮件必须是HTML格式的。我在这里读过其他帖子,但没有帮助。
这是我来自控制器的代码:
public function reply_post(){
$to = $this->input->post('contact_email');
$subject = $this->input->post('contact_subject');
$header_message = "<html><head><title>".$subject."</title></head><body>";
$footer_message = "</body></html>";
$input_msg = $this->input->post('contact_reply');
$msg = $header_message.$input_msg.$footer_message;
$from = "admin@XXXXXXX.com";
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'mail.XXXXXX.com',
'smtp_port' => XXX,
'smtp_user' => 'admin@XXXXX.com', // change it to yours
'smtp_pass' => 'XXXXX', // change it to yours
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'wordwrap' => TRUE
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$this->email->from($from, "Admin"); // change it to yours
$this->email->to($to);// change it to yours
$this->email->subject($subject);
$this->email->message($msg);
if($this->email->send()){
$msg = 'Email sent.';
} else {
log_message('error','Email did not send');
$msg = "Email Did not send";
}
$this->finish($msg);
}
我从表单中获得的消息是通过Summernote WYSIWYG编辑器,因此它已经是HTML格式的。但是,当我收到电子邮件时,它不会对其应用HTML标记,并且所有标记都可见。它就像某种程度上将mailtype设置为'text',即使在配置中将其设置为HTML之后也是如此。
答案 0 :(得分:1)
除非您初始化配置选项,否则设置配置选项不起作用。在$ config数组后添加:
$this->email->initialize($config);
所以你没有把它搞定所以它没有进一步添加
adding $this->email->set_mailtype("html");
可能会解决您的问题。
加载库然后初始化