Symfony和SwiftMailer使用starttls发送邮件

4

请问有人能够向我解释一下SSL和STARTTLS如何与PHP配合使用吗?

我有一个由Plesk管理的专用服务器,上面安装了Postfix和Dovecot,但没有SSL。

为了收发我的电子邮件,我使用SMTP / IMAP并启用了STARTTLS。

但是在PHP中,使用Swiftmailer和Symfony时,我只有两个选项:ssl或tls。 这两个选项都无法正常工作,无法发送邮件。

在Stack Overflow上搜索后,我将以下代码添加到我的代码中,现在可以正常工作:

$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);

您认为我的配置是否正确?


我认为这是正确的,尝试在资源中导出您的配置,并使用YamlParser解析它们。 在此处查看START TLS和SSL / TLS之间的差异:https://dev59.com/gm035IYBdhLWcg3wPNdk - Weenesta - Mathieu Dormeval
1个回答

2
您提供的端口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。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接