2011-12-20 81 views
0

有這樣的1000個帖子,但不知何故,我不能讓事情工作。我用使用Gmail的Zend郵件SMTP

$config = array('ssl' => 'tls', 
      'auth' => 'login', 
       'port' => 587, 
       'username' => '[email protected]', 
       'password' => 'mypassword'); 

$tr = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config); 

,並獲得

Fatal error: Uncaught exception 'Zend_Mail_Protocol_Exception' with message 'Unable to connect via TLS' 

使用

$config = array('ssl' => 'ssl', 
       'auth' => 'login', 
       'port' => 465, 
       'username' => '[email protected]', 
       'password' => 'mypassword'); 

$tr = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config); 

我越來越

Fatal error: Uncaught exception 'Zend_Mail_Protocol_Exception' with message 'Could not open socket' 

順便說一句,我使用的XAMPP 1.7.7。任何幫助任何人?

回答

2

我敢肯定,Gmail不允許SSL/TLS。如果你刪除該行,我相信上面的配置應該工作,假設用戶名和密碼正確。

+0

非常感謝...它的工作.... – 2011-12-20 15:40:42

+1

我不知道這個答案中的陳述是絕對正確的。對我來說'ssl'=>'tls'是通過gmail發送郵件所必需的,否則我會得到以下異常:'Zend_Mail_Protocol_Exception'帶有'5.7.0'消息必須首先發出STARTTLS命令。 – 2011-12-29 14:02:19

+0

我同意@DimitrisBaltas,谷歌絕對需要ssl連接。這真的很奇怪。 – Optimus 2012-01-24 09:12:04

1

查找以下在php.ini文件

 
;extension=php_openssl.dll 
//remove the semicolon in front, save and restart apache, then passed. 

希望它爲你工作

+0

nopes,我在電視上看到一個帖子,但沒有發現行我的php.ini,Google搜索和發現 - OpenSSL的編譯並在XAMPP 1.7.2的php 5.3中啓用,因此不再需要單獨的擴展dll。 – 2011-12-20 15:37:36

0

嘗試使用這個配置陣列(我的作品):

$config = array(
    'ssl' => 'tls', 
    'auth' => 'login', 
    'port' => 25, 
    'username' => '[email protected]', 
    'password' => 'mypassword');