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

Laravel使用SMTP发邮件触发60秒执行超时错误求助

Laravel邮件发送超时错误排查与解决

报错信息

Maximum execution time of 60 seconds exceeded in
E:\xampp\htdocs\eCommerce\vendor\symfony\mailer\Transport\Smtp\Stream\SocketStream.php
on line 154

邮件类代码

class VerifyEmail extends Mailable
{
    use Queueable, SerializesModels;

    public function __construct()
    {
    }
    
    public function envelope()
    {
        return new Envelope(
            subject: 'VerifyEmail',
        );
    }

    public function content()
    {
        return new Content(
            view: 'Control.auth.Verify',
        );
    }

    public function attachments()
    {
        return [];
    }
}

可能的原因

  • SMTP服务器连接异常:SMTP地址、端口填写错误,或者本地网络/防火墙阻止了与SMTP服务器的连接,导致程序持续等待响应触发超时。
  • SSL/TLS配置问题:SMTP要求加密连接,但本地证书配置失效、未正确开启加密,导致握手过程卡住超时。
  • 同步发送阻塞:在请求流程中同步发送邮件,当邮件服务响应缓慢时,超过PHP默认的max_execution_time限制(XAMPP默认60秒)。
  • 本地环境限制:XAMPP默认的PHP执行时间阈值较低,若邮件发送流程本身耗时较长(哪怕模板简单),也会触发超时。

解决方法

1. 校验SMTP配置准确性

打开项目根目录的.env文件,核对以下核心配置:

MAIL_MAILER=smtp
MAIL_HOST=你的SMTP服务器地址(例如smtp.gmail.com)
MAIL_PORT=对应端口(587对应tls,465对应ssl)
MAIL_USERNAME=你的邮箱账号
MAIL_PASSWORD=邮箱授权码(非登录密码,如Gmail的应用密码)
MAIL_ENCRYPTION=tls # 或ssl,需与端口匹配
MAIL_FROM_ADDRESS=发件邮箱
MAIL_FROM_NAME="${APP_NAME}"

确认地址、端口、加密方式完全匹配SMTP服务商的要求。

2. 改用队列异步发送邮件

你的邮件类已引入Queueable trait,直接切换为异步发送即可避免同步阻塞:

// 替换原同步发送代码
// Mail::to($user)->send(new VerifyEmail());

// 改为队列异步发送
Mail::to($user)->queue(new VerifyEmail());
// 或延迟发送
Mail::to($user)->later(now()->addMinutes(5), new VerifyEmail());

注意:需先配置队列驱动(如数据库、Redis),并启动队列监听:

php artisan queue:work

3. 临时调整PHP执行时间限制

若需临时测试同步发送,可在发送代码前添加:

set_time_limit(120); // 将执行时间设为120秒

或修改php.ini文件中的max_execution_time值为更大的数字(如120),修改后重启XAMPP的Apache服务。

4. 排查网络与SSL问题

  • 用telnet测试SMTP端口是否开放:
telnet smtp.example.com 587
  • 确认本地PHP已安装OpenSSL扩展,若证书有问题,可临时关闭加密(仅测试用,生产环境不推荐):将MAIL_ENCRYPTION设为空,端口改用25(需SMTP服务器支持)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:25:26