• 注册
热门标签
↑ 收起导航

博客添加“回复留言评论时发送邮件提醒”功能For ASblog

ps.代码更新于 2011年1月21日 9:14

前段时间在ifu25网站留言或评论后,总能收到博主的回复邮件,感觉这是个很不错的功能!结合自己的一些经验考虑,在访问别人的网站时,80%是 搜索引擎引导过去的,除非是非常不错的易记的域名,大多都无法再次回访,至于在其网站上的留言或评论也都无法去查看博主的回复了,很是郁闷!

现在看到这个邮件提醒功能,于是就很想给自己的网站也加上这个。就去看了一下Zblog的相关插件,感觉写的很不错,于是拿来做了部分修改,去掉多 余的添加需要的功能后,添加了一个回复时是否发送邮件的开关:IsEmail="1",然后在前台和数据库中也添加了留言评论时可选填Email这一项, 于是本站就顺利开通了回复留言评论时对来访者发送提醒邮件,这样即使别人记不住域名,也能回访,很不错哦!

最后谢谢ifu25发送的邮件的提示以及zblog提醒邮件的插件制作者!你们都是好样的哈哈!

分享一下我的这个功能主要应用的代码,将下列代码保存为send_comm_email.asp放在根目录下,并在Ajax.asp文件中包含此文件:

<%
' ============================================
' 调用方法:sendEmail(Title,MSG,USER,url)
' 有新评论、留言时发送邮件提醒站长
' ============================================
Const Send_Charset = "GB2312"   '邮件的文字编码
Const Send_MailServerName = "smtp.qq.com"
Const Send_MailServerUserName = "web@nuodou.com"  '登录邮件服务器所需的用户名
Const Send_MailServerUserPwd = "******"          '登录邮件服务器所需的密码
Const Send_MailFromAddress = "web@nuodou.com"    '发件人的E-MAIL地址
Const Send_MailFromName = "诺豆网站长提醒"    '发件人的姓名
Const Send_MailServerAlternate = ""  '备用发信服务器
Dim Title,MSG,USER,url,Email_Body,RecEmail
RecEmail = "web@nuodou.com"  '收件人Email地址
Function SendEmail(Title,MSG,USER,url)
'标题,内容,发表者,日志URL
On Error Resume Next
'===========定义回复邮件内容的样式  开始===========
' Email_Body = "请根据自己的需要自制样式"
Email_Body = "一条"& Title & "<br/>大名: "& USER & "<br/><br/>内容: " & MSG & "<br/><br/><a href="""&url&""">点此查看详细信息</a><br/><br/>时间: " & Now()
'===========定义回复邮件内容的样式  结束===========
Dim jmail
Set jmail = Server.CreateObject("JMAIL.Message") '建立发送邮件的对象
jmail.Clear()
'jmail.Logging = True '记录发送日志
jmail.silent  = True  '屏蔽例外错误,返回FALSE跟TRUE两值
jmail.Charset = Send_Charset '邮件的文字编码为国标
jmail.ContentType = "text/html" '邮件的格式为纯文本, 如text/html则为html格式,此时若有附件,则附件会出现乱码,解决办法是删除此句
If LCase(strToAddress)<>"null" Then jmail.AddRecipient RecEmail  '邮件收件人的地址
jmail.From     = Send_MailFromAddress     '发件人的E-MAIL地址
jmail.FromName = Send_MailFromName        '发件人的姓名
jmail.ReplyTo  = RecEmail             '回复地址
jmail.MailServerUserName = Send_MailServerUserName '登录邮件服务器所需的用户名
jmail.MailServerPassword = Send_MailServerUserPwd  '登录邮件服务器所需的密码
JMail.Subject = "A New Massage From NuoDou Blog" '邮件的标题
JMail.HTMLBody = Email_Body   '邮件的内容
jmail.Priority = 3 '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
jmail.Send(Send_MailServerName)  '执行邮件发送(通过邮件服务器地址)
jmail.Close() '关闭对象
Set jmail=Nothing
Err.Clear
End Function
%>

后记:诺豆网已经加入了wordpress家族,仍有ASblog的童鞋需要这段代码的使用方法,整理一下分享给大家吧!

首先找到Ajax.asp文件的函数 SaveComment(),对比查看此函数末尾的如下几段代码:

Response.Write(SaveCommentMsg)
Response.End
End Sub

将新评论发送邮件提示的调用函数加入进来,修改如下:

Response.Write(SaveCommentMsg)
'===== 发送邮件提醒 begin =====
If Part = "1" then
SendEmail "新评论",CommentContent,CommentAuthor,"http://yangjunwei.com/a/"&FromID&".html#comment"   '发送新评论邮件提醒
End if
'===== 发送邮件提醒 end =====
Response.End
End Sub

记住一定是加在 response.end之前,否则可能造成发送邮件失败并占用很大的内存而假死!

最后,同样原理,可在后台回复评论的时候做相应的调用来实现回复评论时,发送邮件至评论者所填写的邮箱,主要涉及后台管理目录的Manage_Comment.asp文件中的 SaveEdit() 函数。

版权声明:转载请注明来自杨俊伟博客,本文地址:http://yangjunwei.com/a/331.html
除非注明,杨俊伟博客文章均为原创,转载请注明出处和链接!
 

10 条评论 »

  • zhanghui
    2011/01/29 12:32:47

    换这个样式,你网站的代码真的很难看,都挤到一块去了,不清晰。

    • 头像来自 腾讯QQ
      nuodou
      2011/01/29 14:00:31

      @zhanghui 实在不好意思,刚传了个样式,笔误错了个高度哈哈!多谢提醒哈!

  • 我想想
    2009/10/12 14:57:53

    这个功能好是好,但是我的邮件都装满了

    nuodou 于 2009-10-12 14:59:30 回复

    汗。。。你的邮箱也太小了吧、、、
    我的QQ邮箱:邮箱容量:24G (已使用293M,1%)

  • ifu25
    2009/10/12 12:27:42

    收到了,不错。

    nuodou 于 2009-10-12 12:30:24 回复

    多谢支持

  • ifu25
    2009/10/12 10:40:41

    Yes,没错,你真是个人才……

    nuodou 于 2009-10-12 10:42:09 回复

    还没测试过除常见几大邮局外的个人邮箱,收到请回答!

  • 糖博狐
    2009/10/11 19:45:05

    没法回复啊!

    nuodou 于 2009-10-11 19:56:12 回复

    现在是不是已经回复了?

  • 糖博狐
    2009/10/11 19:44:43

    我测试下!

  • haibor
    2009/10/10 10:08:27

    自己坐沙发,自己测试一下呵呵

    nuodou 于 2009-10-10 10:08:45 回复

    成功!每一次的成功,都是一个进步!

    • zhanghui
      2011/01/17 01:57:30

      @haibor 这个功能不错,不知道你当初用asblog时是如何实现的,我想实现,可是技术有限,他们那个论坛也没有弄出来的。

发表评论 



我还是想用邮箱注册

登录

忘记密码 ?

用第三方帐号快捷登录

已有账户?前往登录吧~

注册