1. 云栖社区>
  2. >
  3. 正文

discuz无法发送邮件解决方法

作者:用户 来源:互联网 时间:2016-05-18 10:11:49

服务器文件邮件函数配置端口

discuz无法发送邮件解决方法 - 摘要: 本文讲的是discuz无法发送邮件解决方法, 先前宿迁波仔也写过一篇关于discuz邮箱激活验证收不到邮件的文章。但是,这次的问题不同。 宿迁波仔采用的发送邮件的方式是“通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证)”,之前邮件激活都用的好好的,是

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

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

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索服务器 , 文件 , 邮件 , 函数 , 配置 端口 discuz发送邮件、discuz 邮件发送失败、discuz 无法发送邮件、discuz 注册发送邮件、discuz不能发送邮件,以便于您获取更多的相关知识。