留言评论邮件通知博主For pjblog2.6|2.7

如题,看到某些朋友需要,花了会儿功夫弄了出来。
作者:戒聊。
发布网址:http://www.muzili.com
请注意修改步骤。特别是第4.1,4.2和第8步。
如有疑问,请到http://www.muzili.com/article.asp?id=7832留言。
1。打开COMMON下的FUNCTION.ASP,在最后一个
复制内容到剪贴板程序代码程序代码
%>
之前插入下列代码
复制内容到剪贴板程序代码程序代码
Function sendmail(username,post_logID,email_commid,email_log_title,comm,post_Message)  '邮件发送
    if trim(blog_jmail)="1" then
            Set msg = Server.CreateObject("JMail.Message")
            msg.silent = true
            msg.Logging = true
            msg.Charset = "gb2312"
            msg.MailServerUserName = blog_smtpuser
            msg.MailServerPassword = blog_smtppassword  
            msg.From = blog_smtpmail
            msg.FromName = sitename
            msg.AddRecipient blog_email,sitename
            If comm=1 Then
                msg.Subject = "您发表的文章《"&email_log_title&"》已有客人发表了评论"
                msg.Body = "["&username&"]在您的博客中发表了评论,请点击查"&siteurl&"default.asp?id="&post_logID&"#comm_"&email_commid&"。评论内容如下:"&post_Message&""
            Else
                msg.Subject = "您的博客已有客人留言"
                msg.Body = "["&username&"]在您的博客中发表了留言,请点击查看"&siteurl&"LoadMod.asp?plugins=GuestBookForPJBlog#book_"&email_commid&"。留言内容如下:"&post_Message&""
            End if
            msg.Send(blog_smtp)
            msg.close
            set msg = nothing
    Else
            Set objMail = Server.CreateObject("CDONTS.NewMail")
            objMail.To = blog_email
            objMail.From =blog_smtpmail
            If comm=1 Then
                objMail.Subject = "您发表的文章《"&email_log_title&"》已有客人发表了评论"
                objMail.Body = "["&username&"]在您的博客中发表了评论,请点击查看"&siteurl&"default.asp?id="&post_logID&"#comm_"&email_commid&"。评论内容如下:"&post_Message&""
            Else
                objMail.Subject = "您的博客已有客人留言"
                objMail.Body = "["&username&"]在您的博客中发表了留言,请点击查看"&siteurl&"LoadMod.asp?plugins=GuestBookForPJBlog#book_"&email_commid&"。留言内容如下:"&post_Message&""
            End if
            objMail.Send
            Set objMail = Nothing
    End If
End Function

'检查组件是否被支持及组件版本的子程序
sub ObjTest(strObj)
  on error resume next
  IsObj=false
  VerObj=""
  set TestObj=server.CreateObject (strObj)
  If -2147221005 <> Err then
    IsObj = True
    VerObj = TestObj.version
    if VerObj="" or isnull(VerObj) then VerObj=TestObj.about
  end if
  set TestObj=nothing
End sub
2。打开blogcomm.asp,找到
复制内容到剪贴板程序代码程序代码
Conn.ExeCute("update blog_Content set log_CommNums=log_CommNums+1 where log_ID="&post_logID)
由于之前我做了某些修改,也提供过修改方法,可能部分朋友已经修改过,所以这里用到了一个之前用的已经定义了的变量。请先搜索下是否有SQLcomm,log_commcomm,如有就OK,如没有,先插入一行dim SQLcomm,log_commcomm,谢谢yangjun.cn指正。
在之上插入如下代码:
复制内容到剪贴板程序代码程序代码
    dim email_commid
    SQLcomm="Select TOP 1 * FROM blog_Comment Where comm_Author='"&username&"' order By comm_ID Desc "
    Set log_commcomm=conn.execute(SQLcomm)
        email_commid=log_commcomm("comm_ID")
    log_commcomm.Close
    Set log_commcomm=Nothing
    dim email_log_title
    SQLcomm="Select * FROM blog_Content Where log_ID="&post_logID&""
    Set log_commcomm=conn.execute(SQLcomm)
        email_log_title=log_commcomm("log_Title")
    log_commcomm.Close
    Set log_commcomm=Nothing
    call sendmail(username,post_logID,email_commid,email_log_title,1,post_Message)
3。打开plugins\guestbook\bookaction.asp,找到如下代码
复制内容到剪贴板程序代码程序代码
Response.Cookies(CookieName)("bookLastPost")=DateToStr(now(),"Y-m-d H:I:S")
在下面插入如下代码:
复制内容到剪贴板程序代码程序代码
    SQLcomm="Select TOP 1 * FROM blog_book Where book_Messager='"&username&"' order By book_ID Desc "
    dim email_bookid
    Set log_commcomm=conn.execute(SQLcomm)
        email_bookid=log_commcomm("book_ID")
    log_commcomm.Close
    Set log_commcomm=Nothing
    call sendmail(username,"",email_bookid,"",0,post_Message)
4。打开common\cache.asp,找到
复制内容到剪贴板程序代码程序代码
" from blog_Info"
在上面插入以下代码:
复制内容到剪贴板程序代码程序代码
        "blog_smtp,blog_smtpuser,blog_smtppassword,blog_jmail,blog_smtpmail" & _
并将其上一行的末尾的
复制内容到剪贴板程序代码程序代码
" &_"
之前插入英文逗号。

找到
复制内容到剪贴板程序代码程序代码
'=========================日志基本信息缓存=======================
Sub getInfo(ByVal action)
在其上插入如下代码:
复制内容到剪贴板程序代码程序代码
dim blog_smtp,blog_smtpuser,blog_smtppassword,blog_jmail,IsObj,msg,objMail,VerObj,TestObj,blog_smtpmail
找到
复制内容到剪贴板程序代码程序代码
blog_version="
在其上插入以下代码:
复制内容到剪贴板程序代码程序代码
        blog_smtp=trim(blog_Infos(*,0))'SMTP地址
        blog_smtpuser=trim(blog_Infos(*,0))'SMTP用户名
        blog_smtppassword=trim(blog_Infos(*,0))'SMTP密码
        blog_jmail=trim(blog_Infos(*,0))'发送邮件组件
        blog_smtpmail=trim(blog_Infos(*,0))'发送邮箱
说明:上一步修改中涉及到的blog_Infos(*,0)中间的*,请从此上一行的blog_Infos(*,0)中的*+1开始序列,依次加1。比如原blog_version="上一行的blog_Infos(*,0)中的*为1,那么刚才这一步中的*依次为2,3,4,5,6

4.1找到
复制内容到剪贴板程序代码程序代码
IF Not IsArray(Application(CookieName&"_blog_Infos")) or action=2 Then
在其前加入
复制内容到剪贴板程序代码程序代码
'
注释掉。

4.2找到
复制内容到剪贴板程序代码程序代码
       Else
        blog_Infos=Application(CookieName&"_blog_Infos")
       End IF
在每一行之前加入
复制内容到剪贴板程序代码程序代码
'
注释掉。

5。打开ConContent.asp,找到:
复制内容到剪贴板程序代码程序代码
        <tr>
          <td width="180"><div align="right"> 站长邮件地址 </div></td>
          <td align="left"><input name="blog_email" type="text" size="50" class="text" value="<%=blog_email%>"/></td>
        </tr>
在下面插入:
复制内容到剪贴板程序代码程序代码
        <tr>
          <td width="180"><div align="right"> 邮件发送组件 </div></td>
          <td align="left"><select name="blog_jmail">
          <option value="1" <%if trim(blog_jmail)="1" then response.write "selected"%>>
          <%
            ObjTest("JMail.SmtpMail")
            If IsObj then
                response.write "支持JMail.SmtpMail"
            Else
                response.write "不支持JMail.SmtpMail"
            End If
          %>
          </option>
          <option value="0" <%if trim(blog_jmail)="0" then response.write "selected"%>>
          <%
            ObjTest("CDONTS.NewMail")
            If IsObj then
                response.write "支持CDONTS.NewMail"
            Else
                response.write "不支持CDONTS.NewMail"
            End If
          %>
          </option>
          </select>请选择您的服务器所支持的邮件发送组件</td>
        </tr>
        <tr>
          <td width="180"><div align="right"> SMTP服务器 </div></td>
          <td align="left"><input name="blog_smtp" type="text" size="50" class="text" value="<%=blog_smtp%>"/></td>
        </tr>
        <tr>
          <td width="180"><div align="right">发件信箱 </div></td>
          <td align="left"><input name="blog_smtpmail" type="text" size="50" class="text" value="<%=blog_smtpmail%>"/></td>
        </tr>
        <tr>
          <td width="180"><div align="right"> SMTP用户名 </div></td>
          <td align="left"><input name="blog_smtpuser" type="text" size="50" class="text" value="<%=blog_smtpuser%>"/></td>
        </tr>
        <tr>
          <td width="180"><div align="right"> SMTP密码 </div></td>
          <td align="left"><input name="blog_smtppassword" type="password" size="50" class="text" value="<%=blog_smtppassword%>"/></td>
        </tr>
找到:
复制内容到剪贴板程序代码程序代码
Response.Cookies(CookieNameSetting)("ViewType")=""
在其上插入:
复制内容到剪贴板程序代码程序代码
   weblog("blog_smtp")=trim(Request.form("blog_smtp"))
    weblog("blog_smtpuser")=trim(Request.form("blog_smtpuser"))
    weblog("blog_smtppassword")=trim(Request.form("blog_smtppassword"))
    weblog("blog_jmail")=trim(Request.form("blog_jmail"))
    weblog("blog_smtpmail")=trim(Request.form("blog_smtpmail"))
6。下载附件,解压,上传update.asp到博客所在目录执行升级数据库。
7。后台更新缓存。
8。还原4.1和4.2步。即取消注释。(这一步必须在这里才能打开,否则网站会打不开。)
9。请确定后台的基本设置中的BLOG 地址是否为http://***.*/,即前面的http://和尾部的/,否则邮件中的地址不能打开。这里我没做判断。
10。在后台的基本设置中选择你的服务器所支持的邮件发送组件,如选择JMAIL,请填写SMTP相关信息。
11。更新缓存。
下载文件 点击下载此文件
[本日志由 小戒 于 2008-09-18 08:48 PM 编辑]
收藏到QQ书签 文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 留言 评论 PJBLOG
评论: 5 | 引用: 0 | 查看次数: -
回复回复510601069 [2008-03-16 00:12 AM | del]
修改之后出现错误
最后一步
不过还是谢谢版版帮我改了一个文件
cache这个文件我是改了不知道多少次了
仍然都错
麻烦你了
回复回复suny [2007-12-12 02:15 PM | del]
blogcomm.asp代码段:
("&post_logID&",'"&post_Message&"','"&username&"',"&post_DisSM&","&post_DisUBB&","&post_disImg&","&post_DisURL&",'"&getIP()&"',"&post_DisKEY&")")
   Set JMail = Server.CreateObject("JMail.Message")
                   JMail.silent = true
                     。。。。。。。。。
                        JMail.Send("mail.loveshot.cn")
                        JMail.close
                        set JMail= nothing
Conn.ExeCute("update blog_Content set log_CommNums=log_CommNums+1 where log_ID="&post_logID)
Conn.ExeCute("update blog_Info set blog_CommNums=blog_CommNums+1")
引用来自 小戒 小戒 于 [22/12/2007 14:41:44] 回复
看似没错。应该是缺少了相关变量的定义。请按照提供方法修改。
回复回复suny [2007-12-12 02:12 PM | del]
我把以下代码作为一个单独的asp文件就可以发出去,可是把它整合到blogcomm.asp就出现showmsg.asp中的空白提示框,即未出现评论发表成功等信息,查了下邮箱也未收到信,不知为什么?特来问下:
sendmail.asp                  
<% Set JMail = Server.CreateObject("JMail.Message")
                   JMail.silent = true
                        JMail.Logging = true
                        JMail.Charset = "gb2312"
                        JMail.MailServerUserName = "suny@loveshot.cn"
                        JMail.MailServerPassword = "######"  
                        JMail.From = "suny@loveshot.cn"
                        JMail.FromName ="suny"
                        JMail.AddRecipient "zi.m.xie@gmail.com","loveshot"
                        JMail.Subject = "您发表的文章已有客人发表了评论"
                        JMail.Body = "hehe"
                        JMail.Send("mail.loveshot.cn")
                        JMail.close
                        set JMail= nothing
%>
回复回复yangjun.cn [2007-12-12 05:25 AM | del]
留言时的错误提示:
复制内容到剪贴板代码:
错误类型:
Microsoft VBScript runtime (0x800A01F4)
Variable is undefined: 'SQLcomm'
/Plugins/Guestbook/bookaction.asp, 第 159 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MAXTHON 2.0)

网页:
POST 148 ??? /Plugins/Guestbook/bookaction.asp

POST Data:
ChangeTime=20&username=xuting&validate=%E5%89%8D&book_face=face5&Message=+%E5%8E%85%E5%9C%A8&action=post&submit=%E5%8F%91%E8%A1%A8%E7%95%99%E8%A8%80

时间:
12 December 2007, 05:18:46
好像都是说SQLcomm未定义,请LZ帮忙解决一下,谢谢
引用来自 小戒 小戒 于 [22/12/2007 14:41:44] 回复
2。打开blogcomm.asp,找到复制内容到剪贴板代码:
Conn.ExeCute("update blog_Content set log_CommNums=log_CommNums+1 where log_ID="&post_logID)由于之前我做了某些修改,也提供过修改方法,可能部分朋友已经修改过,所以这里用到了一个之前用的已经定义了的变量。请先搜索下是否有SQLcomm,log_commcomm,如有就OK,如没有,先插入一行dim SQLcomm,log_commcomm,谢谢yangjun.cn指正。
回复回复yangjun.cn [2007-12-12 05:22 AM | del]
修改完以后,发表评论时的错误提示:
复制内容到剪贴板代码:
错误类型:
Microsoft VBScript runtime (0x800A01F4)
Variable is undefined: 'SQLcomm'
/blogcomm.asp, 第 229 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MAXTHON 2.0)

网页:
POST 153 ??? /blogcomm.asp

POST Data:
username=xuting&Message=%E5%93%88%E5%93%88%E3%80%82%E3%80%82%E3%80%82%E3%80%82%E3%80%82&logID=34&action=post&submit2=%E5%8F%91%E8%A1%A8%E8%AF%84%E8%AE%BA
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 博主回复后,系统将发送通知邮件到您的邮箱,可不填.
网 址:
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.