无法通过CodeIgniter邮件函数发送HTML格式表单问题求助
解决CodeIgniter邮件无法解析HTML内容的问题
你的问题根源是没有配置邮件库以HTML格式发送邮件,CodeIgniter的Email类默认使用纯文本模式,导致HTML标签被当作普通文本显示。
修复步骤
在加载邮件库后,添加以下两行配置:
set_mailtype('html'):告知邮件库发送HTML格式邮件set_charset('utf-8'):避免中文或特殊字符乱码
修改后的完整代码
public function send_mail() { $to = "test@test.com"; $fname = $this->input->post('fname'); $lname = $this->input->post('lname'); $email = $this->input->post('email'); $phone = $this->input->post('phone'); $esubject = $this->input->post('esubject'); $msg = $this->input->post('msg'); $ip= $_SERVER['REMOTE_ADDR']; $this->load->library('email'); // 新增HTML邮件配置 $this->email->set_mailtype('html'); $this->email->set_charset('utf-8'); $this->email->from($email); $this->email->to($to); $this->email->subject('Contact Form'); // 优化内容拼接(可选,提升可读性) $email_content = <<<HTML {$fname}<br> {$lname}<br> {$email}<br> {$phone}<br> {$esubject}<br> {$msg}<br> IP: {$ip} HTML; $this->email->message($email_content); if($this->email->send()) { echo 'Email sent.'; } else { show_error($this->email->print_debugger()); } $this->load->view('contact'); }
额外说明
- 如果你需要同时兼容不支持HTML的邮件客户端,可以用
$this->email->set_alt_message('纯文本内容')添加纯文本备选版本。 - 确保邮件内容中的HTML标签合法闭合,避免解析异常。
内容的提问来源于stack exchange,提问作者nino cphilip
相关产品推荐
相关产品推荐

