Может кто-нибудь объяснить мне, как работают SSL и STARTTLS с PHP?
У меня есть выделенный сервер с Postfix и Dovecot (управляется plesk). У меня нет SSL.
Чтобы получать и отправлять свои электронные письма, я использую SMTP / IMAP с STARTTLS.
Но в PHP, со Swiftmailer и Symfony, у меня есть только два варианта: ssl или tls.
Ни одна из 2-х не работает в моем случае, письма не уходят.
Выполняя поиск по stackoverflow, я помещаю это в мой код, и это работает:
$transport = \Swift_SmtpTransport::newInstance('smtp.server.fr', 587, 'tls')
->setUsername($username)
->setPassword($password)
->setStreamOptions(array('ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)));
$mailer = \Swift_Mailer::newInstance($transport);
Как вы думаете, моя конфигурация верна?
Порт 587
Вы предоставили указание, что опция tls
верно. Таким образом, чтобы заставить его работать в Symfony с Swiftmailer, вам не нужно создавать новый экземпляр SmtpTransport
,
Просто добавьте следующее в вашу конфигурацию Swiftmailer config.yml
:
Swiftmailer
# here are some other swiftmailer options like host, user etc.
stream-options:
ssl:
allow_self_signed : true
verify_peer: false
Продолжайте использовать swiftmailer как обычно.
Других решений пока нет …