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

Laravel 8使用Mailtrap.io发送邮件SMTP认证失败求助

Mailtrap SMTP认证失败问题解决方法
  • 核对凭证有效性
    直接登录Mailtrap控制台,找到对应收件箱页面,复制官方提供的最新SMTP用户名和密码,避免手动输入导致的拼写错误;同时确认该收件箱未被禁用。

  • 调整配置参数

    • 尝试修改加密方式:将MAIL_ENCRYPTION的值从tls改为null,部分环境下2525端口的TLS握手可能出现兼容性问题。
    • 切换SMTP端口:Mailtrap支持465(SSL)、587(TLS)端口,可尝试将MAIL_PORT改为587,保持MAIL_ENCRYPTION=tls后重新测试。
  • 排查网络与环境限制

    • 检查服务器/本地环境的防火墙、安全组规则,确保允许出站访问smtp.mailtrap.io的2525/587端口。
    • 若在容器环境运行,可通过telnet smtp.mailtrap.io 2525或nc -zv smtp.mailtrap.io 2525命令测试网络连通性,确认目标地址可正常访问。
  • 框架层面验证(以Laravel为例)

    • 清除配置缓存:执行php artisan config:clear,确保最新配置生效,避免旧缓存的错误凭证干扰。
    • 用基础脚本测试连接:编写简单的PHP脚本直接调用SMTP服务,排除框架配置问题:
<?php
require 'vendor/autoload.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(true);

try {
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;
    $mail->isSMTP();
    $mail->Host = 'smtp.mailtrap.io';
    $mail->SMTPAuth = true;
    $mail->Username = '你的Mailtrap用户名';
    $mail->Password = '你的Mailtrap密码';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = 2525;

    $mail->setFrom('from@example.com', 'Mailer');
    $mail->addAddress('to@example.com', 'Recipient');

    $mail->isHTML(true);
    $mail->Subject = 'Test Mail';
    $mail->Body = 'This is a test email';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

运行脚本后查看SMTP交互日志,可定位认证失败的具体原因。

内容的提问来源于stack exchange,提问作者Malik Zubair Mukhtar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:15:51