城市里的游牧民族

Menu

解决discuz邮件发送返回错误信息

问题描述:discuz 论坛程序,因各种原因进行了网站搬家迁移,由原来虚拟空间迁移到阿里云服务器上。

问题现象:原来是邮件发送方式:通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证)在原来空间上是没有问题的,搬家后发现无法发送邮件,在检测的时候提示“邮件发送返回错误信息”,在相关日志信息里面有如下报错信息“(smtp.ym.163.com:25) CONNECT - Unable to connect to the SMTP server”

问题处理过程:

1、首先应该确定在discuz设置上应该没有多大问题,确保“后台——全局——管理员邮箱”、“后台——站长——邮件设置——发信人邮件地址/SMTP 身份验证用户名”、“后台——Ucenter——邮件设置——发信人邮件地址/SMTP 身份验证用户名”里面的邮箱地址一致。

2、在阿里云服务器上yum install sendmail 确保能telnet 上阿里云服务器的25号端口。

3、确保阿里云服务器支持组件有包括:(fsockopen、SOCKET )

4、将fsockopen修改为pfsockopen

涉及到如下文件
\include/install_var.php
\source\function\function_mail.php 邮件相关
\uc_client\lib\sendmail.inc.php 邮件相关
\uc_server\lib\sendmail.inc.php 邮件相关

5、php.ini文件里面的disable_functions=后面没有相关函数(fsockopen、pfsockopen)

在确保了上面所有更改后,其实问题依旧。

6、直接在“后台——站长——邮件设置——SMTP 服务器:”处填写邮件服务器的IP地址。问题解决。

以上内容均非本人原创,皆来自网络。如有网友再次遇到这样的问题,建议直接尝试第6点解决方法。

 

7、最后解决方法:请检查服务器环境下的文件/etc/resolv.conf文件的权限,确保other有read权限,或者直接修改为755

 

— 于 共写了850个字
— 文内使用到的标签:
本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 中国大陆许可协议进行许可。

一条回应:“解决discuz邮件发送返回错误信息”

  1. […] 处理过程详见:http://www.citynomads.cn/html/1684.html […]