Назад | Перейти на главную страницу

Проблемы с открытием порта 465 для smtp на centos

я использую phpMailer для отправки подтверждений покупки с помощью адреса приложения Google / smtp. Все это отлично работало с модулем разработки, но теперь, когда оно работает, кажется, что порт, который я использую (465), заблокирован.

Итак, я редактирую iptables с помощью:

-A INPUT -p tcp -dport 465 -j ACCEPT  
-A INPUT -p tcp -sport 465 -j ACCEPT

Насколько я понимаю, это позволяет входящие и исходящие соединения на 465 (поправьте меня, если я ошибаюсь). После перезапуска iptables:

iptables -nL  
Chain INPUT (policy ACCEPT)
target   prot   opt   source      destination
ACCEPT   tcp    --    0.0.0.0/0   0.0.0.0/0   tcp dpt:465
ACCEPT   tcp    --    0.0.0.0/0   0.0.0.0/0   tcp spt:465

Однако я все еще получаю сообщение «Не удалось подключиться к серверу: разрешение отклонено» при отладке от phpMailer. Из того, что я читал, это обычно означает, что порт закрыт, & очевидно это так.

Любые подсказки о том, как отлаживать это дальше? Любая помощь приветствуется.

Если это поможет, вот php:

$mail = new PHPMailer();        
$mail->IsSMTP();
$mail->SMTPDebug = 1; //!DEV
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';      
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->Username = $emailAddress;
$mail->Password = $emailPassword;
$mail->SetFrom($emailAddress, 'PURCHASE ORDER');
$mail->AddAddress($customerEmail);
$mail->AddAddress($salesEmail); 
$mail->Subject = $subject;
$mail->Body = $body;        
$mail->Send() or die('Error: ' . $mail->ErrorInfo);

* Edit: Почтовик безупречно работает на сервере разработки - есть какие-нибудь советы по сравнению, что может отличаться? Та же ОС, тот же php ... Я в тупике!

Вы сказали своему серверу принять входящий подключений на порт 465, но затем вы также говорите ему подключиться к smtp.gmail.com, который является исходящий подключение.

Вам нужно будет открыть те же порты, но в цепочке OUTPUT вместо INPUT:

-A OUTPUT -p tcp --dport 465 -j ACCEPT

Для редактирования из терминала команда будет выглядеть так:

iptables -A OUTPUT -p tcp --dport 465 -j ACCEPT

Проблема брандмауэра должен вызывает сообщения об ошибках «Соединение было сброшено» или «Время ожидания соединения истекло». PHPMailer мощь будет выдавать вам сообщение об ошибке "Permission denied" вместо одного из этих двух, но это будет плохое сообщение об ошибке. (Это не первый раз, когда я вижу плохие сообщения об ошибках.)

Если сообщение об ошибке «Не удалось подключиться к серверу: в разрешении отказано» полезно, это означает, что у вас есть safe_mode включен или вы запретили открывать розетки в php.ini.

Это также может быть вызвано SELinux. Я недостаточно знаком с этим, чтобы сказать вам, что делать, чтобы определить, так ли это, или исправить это.