繁体   English   中英

Laravel邮件SES 504网关超时

[英]Laravel mail SES 504 Gateway Time-out

在使用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

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

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

要使之高效且具有容错能力,您可以做的一件事就是利用队列。 您可以将任务(例如发送电子邮件)推入队列。 假设任务失败,队列本身将重试,并且也可以对其进行自定义(例如:无重试次数)

另一个SO答案

修复它,我是个白痴。 我使用eu-central-1。 eu-central-1没有SES,eu-west-1没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM