看到ecshop官方論壇里有很多關于此問題的提問,剛好有空,測試了一下郵箱服務器設置,163郵箱可以正常發送,gmail不能正常發送,自己修改了一下代碼,就可順利發送郵件,解決如下:
1. 檢查php是否支持openssh
首先查看phpinfo,查看看PHP是否支持OpenSSL,看到下面的字樣,就標示支持OpenSSL。一般現在的PHP都會默認支持的。
OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.8b 04 May 2006
2. 修改Discuz!代碼
vi includes/cls_smtp.php大概在93行處,
把
$this->connection = @fsockopen($this->host, $this->port, $errno, $errstr, $this->timeout);
修改
$this->connection = @fsockopen('ssl://'.$this->host, $this->port, $errno, $errstr, $this->timeout);
3. 修改Gmail設置
1.登錄到您的 Gmail 帳戶。
2.點擊任一 Gmail 頁頂部的設置。
3.點擊橙色框郵件設置中的轉發和 POP。
4.選擇針對所有郵件啟用 POP 或者針對從現在起開始接收的郵件啟用 POP。
5.使用 POP 訪問 Gmail 郵件后,選擇您要對郵件采用的處理方式。
4. 配置ecshop郵件設置
登錄ecshop后臺,在左邊導航欄,單擊【系統設置】-》郵件服務器設置,在郵件服務選擇采用其他的SMTP服務,其他的參考下圖設置
ecshop郵箱服務器設置
然后按發送測試郵件,看到如下圖代表發送成功
現在就可以到郵箱就收看測試郵件了,
5. 最后驗證發送到yahoo,hotmail,163,qq郵箱都能快速收到
參考文件:
原文地址:http://www.lihaixin.com/2008/10/ecshop-support-gmail-409.html

