Laravel邮件SES 504网关超时

时间:2018-11-07 08:42:18

标签: php laravel

在使用ses作为邮件提供者的Laravel项目中发送邮件时,经过一会儿后,我收到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

2 个答案:

答案 0 :(得分:0)

您是否有负载均衡器?试过这个吗?

  

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

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

Another SO Answer

答案 1 :(得分:0)

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