只有在生成电子邮件时,我才会收到 504 网关超时。我已经检查了 php.ini并将max_execution_time设置为 300 以及default_socket_timeout。一旦我删除了SMTP功能并且站点无法再发送电子邮件,就没有504的操作需要发送电子邮件。 SMTP配置正确,因为我在测试站点上使用了相同的配置。生产环境中显然缺少或配置错误,但我不确定在哪里查找。如果有人有任何见解,我将不胜感激,因为我在过去的几天里一直在寻找答案。
它在 AWS 上运行,并使用 Amazon SES 发送电子邮件。Prod 和 Dev 都是它们自己的实例。
SMTP设置:(就像我说的,这适用于测试站点(
add_action( 'phpmailer_init', 'send_smtp_email' );
function send_smtp_email( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = 'host';
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 25;
$phpmailer->Username = 'username';
$phpmailer->Password = 'password';
$phpmailer->SMTPSecure = 'tls';
$phpmailer->From = 'info@website.com';
$phpmailer->FromName = 'Site Name';
$phpmailer->SMTPDebug = 1;
}
我想出了问题。AWS 限制端口 25,该端口在生产环境中返回为 504,因为那里的流量很大,这就是 Dev 工作的原因。我将端口更改为 587,他们不节流,现在工作正常。