Discuz!5.5的邮件兼容性有了很大的提高,对于之前的版本,用户可以根据https://discuz.dismall.com/thread-501721-1-2.html这个地址的说明将相应文件覆盖就能提高你所使用版本的论坛的兼容性了!
文件更新之后,用户现在需要的就是配置一下邮件发送的配置文件了(mail_config.inc.php)!其实这里主要有两个方面的选择。
对于Linux主机或者空间,本身此系统会自带一个sendmail函数,只要在服务器上使用ntsysv命令选择上sendmail就可以了,这里也不多说了,可以baidu搜索一下相应的文档即可,或者你可以安装一些其他的邮件发送组件。此类型的虚拟空间,可以咨询一下空间商是否支持sendmail函数,Discuz!出售的空间(http://idc.comsenz.com)完全支持sendmail和Discuz!的。其实如果是这样的主机或者空间,你无需做任何文件的修改就可以进行邮件发送了!不过你可以打开mail_config.inc.php文件看一下,默认的$mailsend等于1就是我们此种邮件发送方式!
对于windows主机和一些不支持sendmail的空间,我们推荐使用$mailsend等于2的邮件发送方式。这样你就需要获取一个smtp服务器,你可以使用别人的smtp服务器,比如搜狐的(smtp.sohu.com),不过对于windows主机,还是建议你在服务器上配置一个windows组件,windows的IIS下就有个smtp服务器,如果你闲麻烦的话,可以就使用那个!找好smtp服务器之后,你现在需要的就是配置mail_config.inc.php文件了,将$mailsend设为2,然后配置
$mailcfg['server'] = 'smtp.21cn.com'; // SMTP 服务器
$mailcfg['port'] = '25'; // SMTP 端口, 默认不需修改
// SMTP port, leave default for most occations
$mailcfg['auth'] = 1; // require authentification? 1=yes, 0=no
// 是否需要 AUTH LOGIN 验证, 1=是, 0=否
$mailcfg['from'] = 'Discuz <myaccount@21cn.com>'; // mail from (if authentification required, do use local email address of ESMTP server)
// 发信人地址 (如果需要验证,必须为本服务器地址)
$mailcfg['auth_username'] = 'myaccount'; // username for authentification
// 验证用户名
$mailcfg['auth_password'] = 'password'; // password for authentification
// 验证密码
根据你的实际情况配置即可!这样你就轻轻松松的配置好论坛的邮件发送了!
常见问题解答:
1、我接收的邮件为什么只有一大串数字代码呢?
答:将mail_config.inc.php中的$maildelimiter设置为另一个值,之前为0的设置为1,之前为1的设置为0
2、为什么我配置了第二种邮件发送方式,配置好的时候可以正常,但是一段时间之后就不能发送了?
答:这是因为smtp服务器对你的邮件进行了屏蔽,比如你使用的是搜狐的,经常发送好多邮件,当然搜狐的就把你的屏蔽掉了,所以根本的解决办法最好你使用自己的smtp服务器,也可以换个比如163的暂时解决一下
再一次的提醒阅读此篇文章的人,对于5.0及其以下版本的,即刻起将邮件兼容性补丁打上。 |