Aug 15

[原]打开Discuz的“接收新回复邮件通知”功能 不指定

linuxing , 15:32 , 其他 » 杂七杂八 , 评论(4) , 引用(0) , 阅读(25174) , Via 本站原创 | |
   为更好的利用论坛的功能,Discuz可以使用Email发送回复通知。但该功能默认是关闭的,可以通过一些修改把其打开。
一、选择发送模式
Discuz可以支持三种发送邮件的功能,其中只有前两种,也就是“Unix sendmail直接发送”和“ESMTP发送”是可以在linux环境下使用的。Discuz推荐使用第一种方式。
但“Unix sendmail直接发送”最少有两个限制:
引用
1、必须打开本机的sendmail或postfix服务,但这可能是不必要的,也可能会带来安全问题;
2、使用自搭建的邮件服务器发送的邮件,通常都会被大型ISP的mail服务当垃圾邮件给过滤掉。

正因为如此,所以我决定采用ESMTP方式,而且其也可以使用第三方的邮件发送服务。
以我额外搭建的一台mailserver为例:
引用
域名是:mail.linuxfly.org
支持ESMTP功能
提供给Discuz论坛使用的用户和密码都是:demo

二、设定mailserver设置
修改mail_config.inc.php文件为:
引用
$mailsend = 2;
$mailcfg['server'] = 'mail.linuxfly.org'
$mailcfg['port'] = '25';
$mailcfg['auth'] = 1;
$mailcfg['from'] = 'Demo <demo@linuxfly.org>';
$mailcfg['auth_username'] = 'demo@linuxfly.org';
$mailcfg['auth_password'] = 'demo';

详细的信息,请参考配置文件中的说明。
需要注意的一点是:
最后发送出去的邮件,其发送人并不是上述所设置的demo@linuxfly.org,而是您论坛的管理员邮箱。
也就是config.inc.php中的:
引用
$adminemail = 'admin@linuxfly.org';

这个请特别留意,否则,发送的邮件也有可能会被作为垃圾所过滤的。
三、测试
您可以有三种测试方法:
引用
1、打开注册验证,然后新注册一个用户,即会送到提示激活的邮件;
2、进入管理界面,在“系统工具”-“论坛通知”中发送邮件给指定的用户;
3、发一个新帖或回复,并选中“接收新回复邮件通知”,然后再回复该帖子,并进入管理界面,在“其他设置”-“计划任务”中,执行notify_daily.inc.php;

这三种方法都可以测试到邮件是否能正常发送。
若失败,可以在“系统工具”-“系统错误记录”中获取相关的信息。
四、把“接收新回复邮件通知”设置为默认选中
这可以通过修改模版实现。以默认的模版、linux平台为例,可以通过下面的命令获得需要修改的文件:
# cd templates/default
# grep 'post_email_notify' *

可以获知,需要修改这几个文件:
引用
forumdisplay.htm
post_newreply.htm
post_newthread.htm
space_topic.htm
supesite_forumdisplay.htm
supesite_post_newreply.htm
supesite_post_newthread.htm
supesite_viewthread.htm
viewthread.htm

把类似:
引用
<input class="checkbox" type="checkbox" name="emailnotify" value="1"> {lang post_email_notify}

修改为:
引用
<input class="checkbox" type="checkbox" name="emailnotify" value="1" checked> {lang post_email_notify}
Tags: ,
牧羊者社区 Email Homepage
2009/08/10 14:57
现在新版好像无效。
linuxing 回复于 2009/08/11 22:53
不好意思,没研究新版本的情况。
fish
2008/05/27 17:16
post_newreply.htm这几个文件里面根本就没有你说的关键字
linuxing 回复于 2008/05/29 09:38
版本不对吧,这是针对5.5版本一下的。6.0以后的我暂时还没用过。
fenglu Homepage
2007/12/17 00:11
貌似没有一个Discuz!论坛email通知功能是正常工作的。如何解释呢?
linuxing 回复于 2007/12/17 10:40
首先说明的是,我不是discuz开发组的人,只是一个普通用户咯。
至于论坛email通知功能,从我开始测试的5.0版本到现在的6.0版本,基本上都是挺正常的。需要明白的是,discuz很大一部分的管理工作是基于计划任务的,email通知功能也是这样,回复了帖子后,email不会马上发送的,默认是1天发一次,在后台可以看到,和设置的。
另外,看源码可以知道,自己发的帖子,自己回复也不会生成email的。也就是说,发帖和回帖的人需要不同的用户。
如果还是不行,可能就要看看后台SMTP处理的日志了,可能是使用的SMTP发送方式不对,或对方拒收了邮件。
(例如,使用21cn.com的SMTP,发给Gmail.com或yahoo.com都会被拒收的,这不是discuz可以控制的)
实在弄不清楚问题,可再联系我。
8cf8 Homepage
2007/12/12 12:05
谢谢,我明白了
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]