最近在安裝Discuz!X2.0時,檢測郵件設置時,總是提示“郵件發送返回錯誤信息”。(如圖)。
本人環境配置為:
Linux 虛擬主機
服務器軟件:Apache
服務器數據庫:MySQL
百度一下,發現不少站長都遇上了這個問題,網上都是千篇一律的轉載一篇Discuz的官方教程,但是根本無法解決“郵件發送返回錯誤信息”的問題。
經過幾天不停的百度與GOOGLE,總結出現此類錯誤的大多數服務器為虛擬主機,原因是有些主機商為防止垃圾郵件,屏蔽了了25端口(25端口為SMTP即Simple Mail Transfer Protocol,簡單郵件傳輸協議)。從而導致了“郵件發送返回錯誤信息”。
解決方法一
Discuz論壇hixinqin同學提供的方法:找到程序里的 fsockopen 函數,替換為:pfsockopen,即可解決所有問題,兩個函數的區別在于 pfsockopen 保持 keep-alive,使得黑客無法進行連接數攻擊。已知使用 fsockopen 函數的程序文件路徑(在fsockopen 前加 p, 即fsockopen 修改為 pfsockopen 即可 ):
Discuz X2 安裝提示不支持fsockopen:
將 /include/install_var.php 文件里的
$func_items = array('mysql_connect', 'fsockopen', 'gethostbyname', 'ile_get_contents', 'xml_parser_create');
替換為:
$func_items = array('mysql_connect', 'pfsockopen', 'gethostbyname', 'file_get_contents', 'xml_parser_create');
即可正常安裝。
X2郵件相關包含fsockopen的文件:
/source/function/function_mail.php 郵件相關
/uc_client/lib/sendmail.inc.php 郵件相關
/uc_server/lib/sendmail.inc.php 郵件相關
PS:如果你在后臺郵件測試提示錯誤,不必擔心,測試郵箱還是會有郵件收到的!
相關教程地址:http://down.admin5.com/info/discuz/
解決方法二
登錄網站虛擬空間后臺(以下已bluehost虛擬主機為例):
進入Bluehost的cPanel,cPanel--》Email Accounts--》Add a New Email Account
2、指定一個新的Email帳戶,比如帳戶名sfz99,并選擇一個需要關聯與之的域名比如sfz99.com,建立郵箱賬號:admin@sfz99.com。
3、創建密碼(建議使用密碼生成器,防止密碼過于簡單)。
在DISCUZ郵件發送方式中選擇第一項“通過 PHP 函數的 sendmail 發送”。(根據自己對應的服務器選擇)
希望這兩個方法,能幫倒還沒解決這類麻煩的站長童鞋,其實最大問題就是主機商25端口的是否禁止,如果以上都不能解決,建議換一個主機空間。
此文由 網站目錄_網站網址收錄與提交入口 編輯,未經允許不得轉載!: