You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:05:13