Я застрял на этом. Я работаю над проектом по автоматическому развертыванию и настройке экземпляров Mautic в AWS Elastic Beanstalk с использованием контейнеров Docker. Кажется, все в порядке, но когда я нажимаю «Проверить соединение» в настройках электронной почты конфигурации Mautic, я всегда получаю «Невозможно подключиться с шифрованием TLS».
Если я не использую шифрование, я могу нормально подключаться и отправлять электронные письма. Так что это не проблема с заблокированным портом или неправильными учетными данными.
Я убедился, что OpenSSL установлен и работает в PHP.
Mautic использует swiftmailer для отправки электронных писем, поэтому я зашел в их код и скопировал точный фрагмент кода, который они используют для тестирования. Я вставил это в тестовый скрипт и запустил его.
<?php
require_once __DIR__ . '/vendor/autoload.php';
try {
$mailer = new \Swift_SmtpTransport('...', 587, 'tls');
$mailer->setUsername('...');
$mailer->setPassword('...');
$mailer->start();
die('hello');
}
catch(Exception $e){
echo $e->getMessage();
}
Это прекрасно работает. Я дошел до того, что добавил остальную часть кода, необходимого для отправки электронного письма, и оно прекрасно дошло до моего почтового ящика. Этот сценарий был выполнен из контейнера докеров, который находится на сервере AWS Elastic Beanstalk.
Итак, что мне не хватает? Почему это не помогает мне при тестировании через mautic?
Тестовый сценарий также использует ту же папку vendor
, что и экземпляр Mautic, поэтому я знаю, что он использует точно такую же версию SwiftMailer.
Спасибо
==
ОБНОВЛЕНИЕ 1
Переход на PHP 5.5 с PHP 5.6, кажется, решил эту проблему, но мне не нравится идея понижения версии PHP только для решения проблемы. Я позаимствовал эту идею из этой проблемы.
Так что, если у кого-то есть лучшее решение, я все еще открыт. Я заметил в проблеме, что кто-то указал решение для 5.6, но оно включает редактирование файлов поставщиков, что не работает для меня, так как я пытаюсь все это автоматизировать.