2015-02-09 116 views
0

Lemme前綴,這個問題通過說我已經搜索了3天可以用來發送郵件的新gmail數據。Gmail和Swift郵件不再適用於

所以建立斯威夫特的交通時,我providing this

Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'tls') 

而且也,而不是465,提供587沒有運氣。錯誤就像它開始運行一個無限循環,然後腳本執行停止。

數據(用戶名/密碼)是100%正確的,並且已經過隔離測試。 (假設test.php包含Swift庫),如果有幫助的話。

具體來說:

<?php 

// File:test.php 


require(__DIR__ . '/vendor/SwiftMailer/swift_required.php'); 

$email = '[email protected]'; 
$pass = 'my-password'; 

$html = '<p>Foo bar</p>'; 

// Build a transport 
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls') 
      ->setUsername($email) 
      ->setPassword($pass); 

$mailer = Swift_Mailer::newInstance($transport); 
$message = Swift_Message::newInstance('New email') 
           ->setFrom(array($email => 'Test app')) 
           ->setTo(array($email)) 
           ->setBody($html, 'text/html'); 


$mailer->send($message); 

它拋出:

未捕獲的異常 'Swift_TransportException' 有消息 '無法使用TLS加密連接'

而且使用時:

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl') 

它結束了無盡的循環。

厭倦了在谷歌搜索這個Gmail的問題。也許任何人都面臨這一點,並已有解決方案了?

+0

嘗試在github上打開問題https://github.com/swiftmailer/swiftmailer/issues – Saqueib 2015-02-09 09:14:25

+0

465正在使用ssl,而587正在使用tls。 (只需幾秒鐘即可查找google的相關文檔:https://support.google.com/a/answer/176600?hl = zh_CN)。從Swift文檔: 要使SSL或TLS加密起作用,您的PHP安裝必須具有適當的OpenSSL傳輸包裝。您可以通過使用PHP函數stream_get_transports() – 2015-02-09 09:21:24

+0

@Markus no來檢查PHP安裝中是否存在「tls」和/或「ssl」,我已經提到,通過說厭倦了搜索這個問題,並且我已經遇到類似你的建議。我的問題是,它過去曾經工作過,但現在它不再有效。是的,我很清楚它需要tls或ssl,所以是的,他們被加載 – Yang 2015-02-09 09:38:16

回答

0

您是否在您的PHP上啓用了SSL啓用?

extension=php_openssl.dll in PHP.ini?

或檢查您的網絡管理員與發送電子郵件訪問端口問題有關嗎?

+0

是的,正如我已經在評論中提到的,SSL已啓用 – Yang 2015-02-09 10:20:27

+0

@bad_boy對不起,我錯過了看到你的命令,我曾經遇到過發送電子郵件的問題,我做得很好在我家,但它是發送電子郵件失敗,當我去演示我的老師bcoz互聯網學校關閉發送電子郵件端口訪問,所以你可以嘗試與其他互聯網連接你的代碼 – koe 2015-02-09 10:23:57