504 Тайм-аут шлюза, когда PHP отправляет почту - PullRequest
0 голосов
/ 10 мая 2018

Я получаю 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;
}

1 Ответ

0 голосов
/ 12 мая 2018

Я разобрался в проблеме. AWS дросселирует порт 25, который на производстве возвращается как 504, так как там интенсивный трафик, поэтому Dev работал. Я изменил порт на 587, где они не работают, и теперь он работает нормально.

...