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

CodeIgniter 3中使用Gmail SMTP发送注册验证邮件遇问题求助

CodeIgniter 3 用Gmail SMTP发验证邮件的问题解决

先修正代码里的致命拼写错误

你代码里的配置项smtp_users是错误写法,CodeIgniter 3的SMTP用户名配置项为**smtp_user**(单数形式),这个拼写错误会直接导致SMTP身份验证失败,是核心问题。

修正后的完整代码

private function _sendEmail()
{ 
    $config = [
        'protocol' => 'smtp',
        'smtp_host' => 'ssl://smtp.googlemail.com',
        'smtp_user' => '你的Gmail邮箱地址', // 修正为单数smtp_user
        'smtp_pass' => '你的应用专用密码', // 注意不能用普通登录密码,看下方说明
        'smtp_port' => 465,
        'mailtype' => 'html',
        'charset' => 'utf-8',
        'newline' => "\r\n" // 把换行设置移到配置里更规范
    ];

    $this->load->library('email', $config); 
    // 无需重复调用initialize,加载库时传入config已完成初始化

    $this->email->from('你的Gmail邮箱地址', '邮件发送者名称'); // from邮箱必须和smtp_user完全一致
    $this->email->to('收件人邮箱地址');
    $this->email->subject('注册验证');
    $this->email->message('请点击链接完成账号验证'); // 替换为你的验证内容

    if($this->email->send()) {
        return true;
    } else {
        echo $this->email->print_debugger();
        die;
    }
}

Gmail账号必须完成的设置

  1. 开启两步验证:登录Gmail账号后,在「安全」设置中开启两步验证,否则无法生成应用专用密码。
  2. 创建应用专用密码:开启两步验证后,在安全设置里找到「应用专用密码」,生成一个专门用于CodeIgniter发邮件的密码,将其填入smtp_pass字段——现在Gmail已禁用非安全应用使用普通登录密码,必须用应用专用密码。

其他注意事项

  • 确保服务器支持SSL连接,465端口未被防火墙封禁。
  • from中的邮箱地址必须和smtp_user完全一致,否则Gmail会拒绝发送请求。

内容的提问来源于stack exchange,提问作者Carrillo Rasyad Siswoyo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 13:21:14