Недавно мне не удалось отправить почту через php на локальном хосте. Я использую PHPMailer
и SwiftMailer
в разных частях приложения.
С SwiftMailer
я получаю это:
Connection could not be established with host smtp.gmail.com [ #0]
С PHPMailer
сообщение такое:
SMTP Error: Could not connect to SMTP host.
Мои настройки в SwiftMailer выглядят так:
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
->setUsername(APP_GMAIL_EMAIL)
->setPassword(APP_GMAIL_PWD);
Я просмотрел несколько потоков здесь, в SO и в других местах, и попробовал много «исправлений», но сообщения об ошибках остаются прежними. Вот некоторые «решения», которые я пробовал:
- Включить OpenSSL in
php.ini
(ранее он был выключен) - Изменить
smtp.gmail.com
наsmtp.googlemail.com
- Замените
smtp.gmail.com
определенными IP-адресами Gmail. - Замените
smtp.gmail.com
наgethostbyname('smtp.gmail.com')
- Добавьте
->setSourceIp('0.0.0.0')
к приведенному выше коду создания экземпляра послеsetUsername
иsetPassword
.
Этот код ранее работал, и я не уверен, что могло сломать функцию. В рамках устранения неполадок я только что подтвердил, что аналогичный код на общем хостинге Linux удовлетворительно отправляет электронную почту, предполагая, что проблема каким-то образом связана с моей средой. Таким образом, я даже пробовал разные источники доступа в Интернет, на случай, если это дело провайдера.
Как расколоть этот орех?