2016-12-07 106 views
1

有人可以向我解释如何在PHP中使用SSL和STARTTLS?Symfony和SwiftMailer用starttls发送

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

要取得和发送我的电子邮件,我使用SMTP/IMAP与STARTTLS。

但是在PHP中,使用Swiftmailer和Symfony,我只有两种选择:ssl或tls。 在我的情况下,没有两项工作,电子邮件不会离开。

搜索的计算器,我把这个在我的代码,这工作:

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

你觉得我的配置是正确的?

+0

我认为这是正确的,尝试导出你的配置在资源和解析他们与YamlParser。 @请参阅START TLS和SSL/TLS之间的区别:http://stackoverflow.com/questions/5540374/starttls-vs-ssl-tls –

回答

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。