博客添加“回复留言评论时发送邮件提醒”功能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,"https://yangjunwei.com/"&FromID&".html#comment" '发送新评论邮件提醒
End if
'===== 发送邮件提醒 end =====
Response.End
End Sub
记住一定是加在 response.end之前,否则可能造成发送邮件失败并占用很大的内存而假死!
最后,同样原理,可在后台回复评论的时候做相应的调用来实现回复评论时,发送邮件至评论者所填写的邮箱,主要涉及后台管理目录的Manage_Comment.asp文件中的 SaveEdit() 函数。