Наскоро не можах да изпращам имейли през php на localhost. Използвам 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 в
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 се изпраща по имейл задоволително, което предполага, че проблемът е някак от моята среда. Така дори опитах различни източници на достъп до интернет, в случай че е нещо от ISP.
Как мога да счупя този орех?