一聚教程网:一个值得你收藏的教程网站

热门教程

discuz无法发送邮件解决方法

时间:2022-06-25 16:25:49 编辑:袖梨 来源:一聚教程网

先前宿迁波仔也写过一篇关于discuz邮箱激活验证收不到邮件的文章。但是,这次的问题不同。
发送返回错误信息
宿迁波仔采用的发送邮件的方式是“通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证)”,之前邮件激活都用的好好的,是突然出问题了,这中间没做任何这方面的修改。
discu后台邮箱配置如下图:
discuz后台邮件配置
由于,这中间我没有做任何改动,所以邮箱用户名,密码这些肯定都是正确的。那么,只能查看邮件服务器的情况了,很有可能就是服务器端有问题。
宿迁波仔先用站长工具(http://tool.chinaz.com/port/ )查了端口25,发现端口也是开放的。
查询端口

然后,在查看发件箱的时候发现:我的zblog博客也是通过普通qq邮箱来发邮件的,而这个却可以正常使用。于是,就查看了自己的zblog邮箱的配置情况,发现使用的是不同的邮箱服务器。再然后,就把zblog的邮件服务器smtp.qq.com写到了discuz论坛上面。。结果,好了

解决方法一

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:如果你在后台邮件测试提示错误,不必担心,测试邮箱还是会有邮件收到的!

热门栏目