Symfony和SwiftMailer用starttls发送

时间:2016-12-07 09:34:23

标签: php symfony swiftmailer starttls

有人可以向我解释如何使用SSL工作SSL和STARTTLS吗?

我有一个专门的服务器,有Postfix和Dovecot(由plesk管理)。我没有SSL。

要获取和发送我的电子邮件,我使用带有STARTTLS的SMTP / IMAP。

但是在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);

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

1 个答案:

答案 0 :(得分:0)

您提供的端口587表示选项tls正确无误。因此,要使用Swiftmailer在Symfony中工作,您不需要实例化新的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。