2015-12-16 1 views
4

Я использую Laravel 4.2, в котором используется swiftmailer lib для электронной почты. Я пытаюсь использовать службу Sendgrid SMTP, но я получаю ошибку тайм-аута на моем промежуточном сервере.Swift_TransportException · Соединение с хостом smtp.sendgrid.net невозможно установить [Connection timed out # 110]

Все хорошо работает в моем местном развитии.

mail.php

return array(
    'driver' => 'smtp', 
    'host' => 'smtp.sendgrid.net', 
    'port' => 587, 
    'encryption' => 'tls', 
    'username' => 'username' 
    'password' => ... 

Я переключение на порт 465 и 'SSL', работает на местном, но не повезло на сервере. OpenSSL включен на сервере.

Что интересно, Mandrill smtp (это использует другой драйвер laravel), а локальный SMTP-сервер работает нормально на сервере.

Порты открыты. Я могу отправить telnet в sendgrid с сервера. Я также отключил имя хоста для IPv4 только для проверки из-за всех проблем, с которыми люди сталкиваются с использованием smtp.gmail.com IPv4 против IPv6. Не имело значения.

Конкретное место ошибка заключается в следующем:

$this->_stream = @stream_socket_client($host.':'.$this->_params['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $streamContext); 
    if (false === $this->_stream) { 
     throw new Swift_TransportException(
      'Connection could not be established with host '.$this->_params['host']. 
      ' ['.$errstr.' #'.$errno.']'); 

Так что мой вопрос, что я должен проверить, чтобы выяснить, почему SwiftMailer и функция stream_socket_client PHP локально, но не работает на сервере. Локально я нахожусь на mac, сервер работает centOS.

ответ

4

Похоже, что приложение выполнялось пользователем без доступа к порту 587. Поэтому, если вы столкнулись с этой проблемой, дважды убедитесь, что вы тестируете порт с пользователем, который запускает ваше приложение.

+0

Google Cloud блокирует этот порт по умолчанию, см. Https://cloud.google.com/compute/docs/tutorials/sending-mail/ для получения более подробной информации. – arecaps

 Смежные вопросы

  • Нет связанных вопросов^_^