作者:一个简单的程序员 | 来源:互联网 | 2014-05-27 15:53
看到很多朋友在设置发送邮箱验证身份的过程中遇到无法发送邮件的问题,当然本人也遇到过,搜索了很多资料,也设置了很多回,更是跟空间商交涉了很多次,得到的答案是设置没问题,那么问题到底出在哪里呢?后来在某个帖子中(忘记了到底是哪个帖子,在此表示感
看到很多朋友在设置发送邮箱验证身份的过程中遇到无法发送邮件的问题,当然本人也遇到过,搜索了很多资料,也设置了很多回,更是跟空间商交涉了很多次,得到的答案是设置没问题,那么问题到底出在哪里呢?后来在某个帖子中(忘记了到底是哪个帖子,在此表示感谢),突发灵感,重新设置了一下,终于解决了问题。现在就将问题的解决办法说出来:
说明:Discuz!
的邮件功能,对于站长来说是相当重要的,如果用户忘记密码,可以通过邮件直接取回,比较方便下面为大家仔细讲解如果设置邮件功能。
一、Discuz! 支持如下三种邮件发送方式:
1、通过 PHP 函数的
sendmail 发送(推荐此方式)
说明:
这种方式是使用 PHP 的函数发送邮件,需要服务器上安装邮件系统。一般的虚拟主机都内置邮件系统。因此推荐使用这种方式。
2、通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证)
说明:
这种方式适用于 win 或者 linux 类服务器使用(适合于虚拟主机或者独立主机使用),并且支持 ESMTP 验证。需要站长拥有一个
SMTP 服务器,例如 Foxmail 的 SMTP 服务器。
3、通过 PHP 函数 SMTP 发送 Email(仅 Windows 主机下有效, 不支持 ESMTP 验证)
说明:这种方式仅仅适合于 win 主机。对系统环境要求较高,不推荐使用。
用户可以根据自己的情况来选择使用哪一种方式
二、邮件头的分隔符分为三种
1、使用 CRLF 作为分隔符(通常为 Windows 主机)
2、使用 LF 作为分隔符(通常为 Unix/Linux 主机)
3、使用 CR 作为分隔符(通常为 Mac 主机)
说明:这里根据您使用的邮件服务器系统选择邮件头的分隔符。
三、下面我们以第二种邮件发送方式为例详细介绍一下设置邮件功能的整个过程:
1、首先我们需要注册一个邮箱,如 Foxmail的邮箱,邮箱名为:hellensu @foxmail.com
2、站点创始人登录 Discuz! 的后台 => 站长 => 邮件设置,选择“通过 SOCKET 连接 SMTP
服务器发送(支持 ESMTP 验证)”如下图所示:
SMTP 服务器:填写 SMTP 服务器 地址,如:smtp.qq.com smtp.sina.com
(这是问题的所在:到这里很多站长都设置没有问题,可还是发送不成功,有可能是空间商设置了什么限制,解决的办法是,将域名改成IP地址,图示中已经给出:QQ邮箱的IP是:112.90.141.71 新浪的邮箱IP地址:202.108.3.190
)
SMTP 端口:默认一般为 25。可以根据自己所用 SMTP 端口的不同进行填写。
说明:验证这里建议大家选择“是”。
发信人邮件地址:填写发件人的邮件地址,如:zgxzq@qq.com,这个邮箱要与smtp中设置的一样。
SMTP 身份验证用户名:填写的邮件地址同上(有些站长设置了QQ邮件独立密码,这个可能问题比较麻烦,建议取消独立密码)。
SMTP 身份验证密码:填写邮箱的密码。
3、邮件头的分隔符选择使用 LF 作为分隔符。(这个一般的服务器是Unix/Linux
主机,但是也有windows主机的,具体还是要问空间商,比如我的服务器便是win主机)
收件人地址中包含用户名:选择“是”将在收件人的邮件地址中包含站点用户名。
屏蔽邮件发送中的全部错误提示:选择“是”将屏蔽邮件发送中的全部错误提示。
四、检测
要想知道设置的邮件功能会员是否能正常收到邮件,我们需要测试一下
下图是QQ邮箱收到的,包括标题等
以下收到的信件内容:
另外:如果这样设置还是不行,那有可能是你的邮箱缺少设置smtp。