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

PHPMailer使用Office 365 SMTP服务出现504认证类型不识别故障

Office365 PHPMailer 504认证类型错误解决方案

核心故障原因

你手动将$email->SMTPSecure设置为空,关闭了加密传输,Office365 587端口要求必须使用STARTTLS加密后再提交认证信息,明文提交的认证请求会被服务器识别为非法类型,返回504 5.7.4 Unrecognized authentication type错误。在线SMTP测试工具会自动识别服务器返回的250-STARTTLS标识主动触发加密流程,因此可以正常发送。

修复步骤

  • 修正加密配置,删除原来的空值配置,替换为以下内容:
// 启用STARTTLS加密,适配Office365要求
$email->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
// 开启自动TLS协商
$email->SMTPAutoTLS = true;

如果使用的是低版本PHPMailer不支持ENCRYPTION_STARTTLS常量,直接写字符串即可:

$email->SMTPSecure = 'tls';
  • 显式指定认证类型,避免自动协商出错:
// Office365支持LOGIN认证方式
$email->AuthType = 'LOGIN';
  • 校验凭据配置
    • 用户名必须填写完整的Office365邮箱地址,不能仅填写前缀
    • 如果账号开启了多因素认证(MFA),必须使用应用密码替代普通登录密码
  • 可选:服务器证书校验异常临时修复(仅用于测试,生产环境请更新系统根证书)
    如果修改上述配置后仍报错,可临时关闭SSL校验排查是否为根证书缺失问题:
$email->SMTPOptions = [
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    ]
];
  • 确认PHP已启用openssl扩展,可通过phpinfo()查看扩展状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:45:02