2016-09-28 4 views
1

PHPmailer прекрасно работает на моем локальном хосте, но когда я переместил его к производству, я получаю такую ​​ошибку:PHPMailer не удается подключиться ВЗ сервера

Connection: opening to smtp.gmail.com:587, timeout=300, options=array () 2016-09-28 12:58:01 Connection: Failed to connect to server. Error number 2. "Error notice: stream_socket_client(): unable to connect to smtp.gmail.com:587 (Connection timed out) 2016-09-28 12:58:01 SMTP ERROR: Failed to connect to server: Connection timed out (110) 2016-09-28 12:58:01 SMTP connect() failed.

Я пытался как TLS и SSL, соответственно, обновлять порты. Также я запустить быстрый Nmap сканирование, и это показывает, что порты открыты должным образом, так что это не проблема

PORT STATE SERVICE 
25/tcp filtered smtp 
443/tcp open  https 
465/tcp open  smtps 
587/tcp open  submission 

Это отрывок из моего приложения:

public function __construct() { 
    parent::__construct(); 

    $this->isSMTP(); 
    $this->SMTPAuth = true; 
    $this->SMTPSecure = 'tls'; 
    $this->Host = MAIL_HOST; 
    $this->Username = MAIL_USERNAME; 
    $this->Password = MAIL_PASSWORD; 
    $this->From = 'myemail'; 
    $this->FromName = 'Name'; 
    $this->addEmbeddedImage('../public/img/message_logo.png', 'logo'); 
    $this->isHTML(true); 
    $this->Port = 587; 
    $this->Subject = "SUBJECT"; 
    $this->SMTPDebug = MAIL_SMTP_DEBUG; 
} 

Каждый знает, что проверить далее?

+0

Вы [разрешили менее безопасным приложениям доступ к вашей учетной записи] (https://support.google.com/accounts/answer/6010255)? – simon

+0

Да, как я уже сказал, он отправляет письма с моего локального хоста без проблем. – fugitive

ответ

1

Это очень распространенная проблема, обычно вызванная исходящей блокировкой SMTP вашим интернет-провайдером, например. GoDaddy делает это. Что это сканирование nmap? Gmail?

По содержанию сообщения об ошибке, я также предполагаю, что вы используете старую версию PHPMailer.

Диагностика этого неполадки рассматривается в the PHPMailer troubleshooting guide.

+1

Я использую эту версию atm '5.2.16'. Я проверил с хостинг-провайдером, их ответ заключался в том, что они не блокируют какие-либо указанные порты. – fugitive

+0

. Вы можете «telnet smtp.gmail.com 587» со своего сервера и получить разумный SMTP-образный ответ? – Synchro

+0

Я не могу проверить это, так как у меня нет доступа к SSH :( У меня есть только FTP. Я проверял открытые порты через удаленное сканирование с моего локального хоста, и мне также удалось установить telnet на эти порты. – fugitive

0

Не знаю о GMail, но с Office 365 мне нужно было отключить проверку SSL.

$this -> SMTPOptions = [ 'ssl' => [ 'verify_peer' => false ] ]; 

Редактировать: вы можете захотеть удостовериться, что доверяете хосту, прежде чем отключать проверку равных прав SSL.

+1

Это не связано с таймаутами подключения - это не доходит до подключения, не говоря уже о начале сеанса TLS. Вы можете * рассмотреть возможность сделать это в ответ на некоторые конкретные виды сбоев проверки, но это опасно, если это не проблема, с которой вы сталкиваетесь. – Synchro

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