discuz論壇郵件不能發送的原因:
文件:include/sendmail.php
查找 fputs($fp, “DATA\r\n");
在其後添加 sleep(1);
 
作用是暫停一秒後繼續運行,如果1還是不行,就改成2,或者是3。

關於論壇郵件系統的說明
郵件系統能不能正常使用,是由兩個方面決定的
1、本身server是否支持發送郵件,不同的server對郵件發送的支援也是不同的,你可以根據自己的主機來配置論壇根目錄下的mail_config.php文件中的$mailsend變數來決定,具體配置見下面的代碼
$mailsend = 1; // 郵件發送方式 0=不發送任何郵件
// 1=通過 PHP 函數及 UNIX sendmail 發送(推薦此方式)
// 2=通過 SOCKET 連接 SMTP 服務器發送(支持 ESMTP 驗證)
// 3=通過 PHP 函數 SMTP 發送 Email(僅 win32 下有效, 不支持 ESMTP)
 
如果你不清楚你的服務器是那種類型,可通過 utilities/testmail.php 進行測試,測試方法如下,把論壇壓縮包裡面的utilities/testmail.php文件打開,把裡面的
$from = ‘my@mydomain.com’; // 發件人郵件地址
$to1 = ‘test@test.com’; // 測試單一郵件發送地址
$to2 = ‘test1@test1.com, test2@test2.net’; // 測試郵件群體發送地址
 
這個部分進行配置,然後傳到server執行,這樣如果server支援郵件發送,那麼你填寫的地址將收到郵件,如果沒有收到郵件則說明你的server不支持郵件發送。
如果你的server不支持郵件發送,還有一個辦法可以實現就是申請一個支援郵件發送的免費郵箱,然後在上面所說的配置論壇根目錄下的mail_config.php文件中的$mailsend變量中選擇2,然後把再在那個文件中找到
$mailcfg[‘server’] = ‘smtp.zhanhelp.com’; // SMTP server
$mailcfg[‘port’] = ’25’; // SMTP 端口, 默認不需修改
$mailcfg[‘auth’] = 1; // 是否需要 AUTH LOGIN 驗證, 1=是, 0=否
$mailcfg[‘from’] = ‘Discuz ‘; // 發信人地址 (如果需要驗證,必須為本server地址)
$mailcfg[‘auth_username’] = ‘xxx’; // 驗證用戶名
$mailcfg[‘auth_password’] = ‘password’; // 驗證密碼
 
根據上面的信息解釋,填寫好訊息,這樣就可以發送郵件了。
做好上面的幾步,基本上就可以正常發送郵件了。

如果你還是不能發送郵件請往下看
2、決定郵件發送系統是否正常的第二個因素,這個就是郵件接收方的問題了,現在市面上大部分免費郵箱都有防止*信的功能,是否能收到信要看接收方是否能夠通過認證,有時候沒有收到信很可能是接收方的郵件系統把你的信件過濾了,如果出現這種情況你可以統計一下那些信箱不能收到信,然後聯繫這些提供免費郵箱網站的相關部門,說明情況一般就可以解決了。
ERIC7322

Tags: ,