2016-12-07 155 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。

相關問題