安装使用 Discuz! 邮件发送失败排查思路

[复制链接]
ARCHY明星会员实名认证 发表于 2012-11-9 10:30:40 [安装使用] 显示全部楼层 |阅读模式 上一主题 下一主题
ad广告
ad广告

马上注册,一起探讨正确快速的建站方法

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
discuz X3.2/x2.5邮箱设置里面已经说了很多关于邮件设置和常见问题的处理办法了,今天这里主要是说明下Discuz! 邮件发送失败排查思路,适用于任何板块的Discuz程序。

Discuz! 邮件发送失败排查思路方法:

1、要确保填写的邮件信息是否正确,主要检测邮件服务器格式填写。推荐视频教程:Discuz X3.2后台邮箱设置,设置可以参考:Discuz X3.2/x2.5 后台邮件设置方法(企业邮箱)

2、查看邮件日志文件,data/log目录下 有一个201210_SMTP.php 类似这样的文件,下面举例说明下

举例一:
  1. <?PHP exit;?>        2012-10-17 16:59:59        127.0.0.1        1        /admin.php?action=checktools&operation=mailcheck&frame=no        (smtp.qq.com:25) MAIL FROM -
复制代码
通过失败日志,进入程序 source/function/function_mail.php, sendmail 函数在失败的时候会记录。 如上面的日志中“MAIL FROM”,在sendmail 函数中的代码是。这样就定位到具体的错误地方。
  1. fputs($fp, "MAIL FROM: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $email_from).">\r\n");
  2.                 $lastmessage = fgets($fp, 512);
  3.                 if(substr($lastmessage, 0, 3) != 250) {
  4.                         fputs($fp, "MAIL FROM: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $email_from).">\r\n");
  5.                         $lastmessage = fgets($fp, 512);
  6.                         if(substr($lastmessage, 0, 3) != 250) {
  7.                                 runlog('SMTP', "({$_G[setting][mail][server]}:{$_G[setting][mail][port]}) MAIL FROM - $lastmessage", 0);
  8.                                 return false;
  9.                         }
  10.                 }
复制代码
举例二:
  1. Unable to connect to the SMTP server
复制代码
定位到代码sendmail函数的位置
  1. if(!$fp = fsocketopen($_G['setting']['mail']['server'], $_G['setting']['mail']['port'], $errno, $errstr, 30)) {
  2.                         runlog('SMTP', "({$_G[setting][mail][server]}:{$_G[setting][mail][port]}) CONNECT - Unable to connect to the SMTP server", 0);
  3.                         return false;
  4.                 }
复制代码
这的错误可能是服务器禁止访问外部邮件服务器。。这里就不一一例举每种错误的情况 了 。排查思路是通过错误日志定位,然后分析可能的错误原因。  

常见错误情况:

1、服务器没有开放25端口

方法:检测服务器是否开启了25端口方,可以使用telnet命令进行验证,本地安装telnet(安装方式可以到网上搜索相关教程), 运行 --输入cmd --输入telnet   www.zb7.com(或者ip) 25端口 看返回的信息是什么 。 或者咨询空间商是否开放了25端口

2、SMTP 服务器是否正确,结尾有没多余空格,是否在该邮箱的邮箱设置里面允许启用SMTP 服务器;
3、服务器是否有设置防火墙过滤等功能。

如果你使用的邮箱不是QQ企业邮箱,你也可以参考Discuz X2 后台邮件设置方法 以QQ邮箱为例子Discuz!X1.5 后台邮件配置详解--使用163邮箱

如果你设置遇到一些问题无法解决:你也可以参考Discuz论坛发送邮件原理问题分析Discuz! X2.5后台检测邮件提示:邮件发送返回错误信息的解决办法Discuz论坛邮件不能发送的原因和解决办法Discuz x2 后台的邮件通知更新天数功能分析
参与人数 1帮币 +2 收起 理由
cmwbs + 2 神马都是浮云

查看全部评分总评分 : 帮币 +2





上一篇:Discuz x2.5注册提示“邮箱、密码等无效” 临时解决方案
下一篇:巧用firebug 对Discuz!模板进行样式调试修改美化

大神点评15

大爱无疆 发表于 2012-11-9 15:58:53 [安装使用] 显示全部楼层
努力,努力,再努力!!!!!!!!!!!  
wamg2010 发表于 2012-11-9 15:58:53 [安装使用] 显示全部楼层
我是来收集资料滴...  
judith912 发表于 2012-11-9 15:58:53 [安装使用] 显示全部楼层
楼主的内容不管你信不信,反正我信了
 发表于 2012-11-11 09:07:13
转播微博
内江-门宇亮 发表于 2013-1-28 21:11:43 [安装使用] 显示全部楼层
哈哈.太好了,写得非常棒,学习
我是86 发表于 2013-2-27 09:36:25 [安装使用] 显示全部楼层
慢慢学习。
│°因为… 发表于 2013-2-27 13:59:27 [安装使用] 显示全部楼层
不能使用系统[email protected]。com吗?
sharely明星会员实名认证 发表于 2013-5-14 15:29:02 [安装使用] 显示全部楼层
很给力,必须要支持的呀
kaixin00 发表于 2013-7-2 10:18:26 [安装使用] 显示全部楼层
一直以来是个问题,学习了
辛集58网www.xinji58.com
pianogangst 发表于 2013-7-2 11:24:29 [安装使用] 显示全部楼层
写的不错,学习了,谢谢分享……szqubanw.com
szqubanw.com
孟德资本 发表于 2013-7-9 01:24:02 [安装使用] 显示全部楼层
谢谢您的教程。
我的邮箱是按您的教程设置的。
现在有个问题,注册用户,可以收到验证链接,但是点击之后,有回到验证邮箱页面,
请问,我应该如何解决。
很急!!!
wo0216 发表于 2013-12-15 01:26:16 [安装使用] 显示全部楼层
好资源!值得下载!
华人先声社区 发表于 2014-2-21 14:22:11 [安装使用] 显示全部楼层
学习了
v4521 发表于 2014-4-6 15:46:15 [安装使用] 显示全部楼层
如何写文章,一直让人烦啊
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表