Я знаю, что на этот вопрос был дан ответ, но у меня есть альтернативное решение, которое соответствует исходному описанию и может кому-то помочь. Вы не ответили на вопрос Лука о том, запускаете ли вы cPanel или нет. Мы запускаем cPanel с брандмауэром lfd / csf, и он имеет конфигурацию TCP_OUT, в которой указывается, какие исходящие порты могут быть подключены. Порт 465 (tls) не был в этом списке, поэтому мы получили отчеты «Отказано в соединении», даже пытаясь выполнить низкоуровневый тест telnet в командной строке нашего VPS-сервера:
$ telnet smtp.gmail.com 465
Trying 74.125.140.109...
telnet: connect to address 74.125.140.109: Connection refused
Trying 74.125.140.108...
telnet: connect to address 74.125.140.108: Connection refused
Trying 2a00:1450:400c:c08::6d...
telnet: connect to address 2a00:1450:400c:c08::6d: Connection refused
Тот же тест telnet работал нормально с моей локальной машины.
После добавления 465 в список TCP_OUT:
- Панель управления нагрузкой WHM
- перейти к
ConfigServer Security & Firewall
- перейти к
Firewall Configuration
- найдите
TCP_OUT
и включите 465 (или любой другой порт, к которому вы пытаетесь подключиться) в список
- нажмите
Change
внизу страницы, затем Restart lfd/csf
.
Telnet теперь успешен, как и отправка почты smtpauth через PHPMailer:
$ telnet smtp.gmail.com 465
Trying 74.125.140.109...
Connected to smtp.gmail.com.
Escape character is '^]'.
(это указывает на то, что соединение с сокетом было установлено. Возможно, вы не хотите на самом деле разговаривать по SMTP с Google, поэтому нажмите ctrl-] и введите quit
и нажмите Enter, чтобы закрыть соединение)
Конечно, это не зависит от cPanel, возможно, вы используете другой менеджер брандмауэра, который не разрешает исходящие соединения через порт, к которому вы пытаетесь подключиться.