有人可以向我解释 SSL 和 STARTTLS 与 PHP 的工作原理吗?
我有一个带有 Postfix 和 Dovecot 的专用服务器(由 plesk 管理)。我没有 SSL。
为了接收和发送我的电子邮件,我使用带有 STARTTLS 的 SMTP/IMAP。
但是在 PHP 中,使用 Swiftmailer 和 Symfony,我只有两个选择:ssl 或 tls。
在我的情况下,这两个都不起作用,电子邮件不会离开。
在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。
关于php - Symfony 和 SwiftMailer 使用 starttls 发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41013875/