【问题标题】:Laravel mail SES 504 Gateway Time-outLaravel 邮件 SES 504 网关超时
【发布时间】:2019-02-09 13:31:54
【问题描述】:

在我的 Laravel 项目中使用 ses 作为邮件提供商发送邮件时,我在等待一段时间后收到 504 网关超时。我尝试使用以下方式发送邮件:

Mail::to($session->email)->send(new SessionRegistered($session));

Mail::send('emails.sessions', ['firstname' => $request->get('register_first_name'), 'lastname' => $request->get('register_last_name'), 'selected' => $selected], function ($m) use ($request) {
    $m->from(env('MAIL_FROM'), env('MAIL_FROM_NAME'));

    $m->to($request->get('register_email'), $request->get('register_first_name') . ' ' . $request->get('register_last_name'))->subject('Uw persoonlijke programma');
});

当我使用log 作为邮件提供商时,一切正常。它发生在我的 Homestead 环境和我们的服务器上。 SES 凭证也用于他们正在工作的另一个项目中。

我收到以下错误:

*502 upstream timed out (110: Connection timed out) while reading response header from upstream

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您是否安装了负载平衡器?试过这个?

    解决方案 1:监控 HTTPCode_ELB_5XX 和延迟指标。如果这些指标有所增加,则可能是由于应用程序在空闲超时期限内没有响应。有关超时请求的详细信息,请在负载均衡器上启用访问日志并查看 Elastic Load Balancing 生成的日志中的 504 响应代码。如有必要,您可以增加容量或增加配置的空闲超时,以便完成冗长的操作(例如上传大文件)。 https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/ts-elb-error-message.html

    您可以通过使用队列来提高效率和容错能力。 您可以将任务(例如发送电子邮件)推送到队列中。假设如果任务失败,队列本身会重试,也可以自定义(例如:重试次数)

    Another SO Answer

    【讨论】:

    • 我没有在我的 Homestead 环境中使用 ELB(因为它是本地的)。
    • 您在 AWS 中使用它吗?因为那是 SES 所在的位置对吧?
    • 检查错误响应/标题以获取更多信息,例如错误代码或其他内容
    • 我现在在 Homestead 中使用它,我得到的唯一错误是我添加到原始帖子中
    • 修好了,我是个白痴。我使用了eu-central-1。 eu-central-1 没有 SES,eu-west-1 有..
    【解决方案2】:

    解决了,我是个白痴。我使用了eu-central-1。 eu-central-1 没有 SES,eu-west-1 有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 2011-08-30
      相关资源
      最近更新 更多