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

Laravel SMTP添加认证方式(PLAIN、LOGIN、CRAM-MD5)配置位置咨询

在Laravel中配置SMTP认证方式(PLAIN/LOGIN/CRAM-MD5)

嘿,我刚好碰到过这个问题!Laravel默认的config/mail.php里确实没把SMTP认证方式的配置项显式列出来,但这不代表没法指定——底层的邮件驱动(不管是Laravel 9+用的Symfony Mailer,还是旧版的SwiftMailer)都支持配置PLAIN、LOGIN或CRAM-MD5这些认证模式。

你有两种配置方式可选:

方式1:直接修改config/mail.php

找到配置文件里的smtp数组,手动添加auth_mode字段,指定你需要的认证方式:

'smtp' => [
    'transport' => 'smtp',
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
    'port' => env('MAIL_PORT', 587),
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'timeout' => null,
    'auth_mode' => 'cram-md5', // 可选值:plain、login、cram-md5
    'local_domain' => env('MAIL_EHLO_DOMAIN'),
],

方式2:通过.env文件配置(推荐,更灵活)

先在你的.env文件中添加一行:

MAIL_AUTH_MODE=cram-md5

然后回到config/mail.php的smtp数组,把auth_mode关联到这个环境变量:

'smtp' => [
    // ... 其他原有配置
    'auth_mode' => env('MAIL_AUTH_MODE', null), // 默认null的话,驱动会自动尝试合适的认证方式
],

注意事项

  • 认证方式的字符串要使用小写:plain对应PLAIN,login对应LOGIN,cram-md5对应CRAM-MD5
  • 如果不指定auth_mode,邮件驱动会自动检测可用的认证方式;但有些邮件服务器要求必须指定特定模式,这时候手动配置就很有必要

内容的提问来源于stack exchange,提问作者Przemek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:05:32