发新话题
打印

回复评论后发邮件功能

回复评论后发邮件功能

就是:要求评论的人写下EMAIL(并不公开,只存于数据库),然后回复评论时,给他回复一封邮件,内容包括,日期,他评论的日志地址,回复内容等。

目的是增加回访客。

我试过两种办法,第一种在本地测试能行,上传到空间后不行了,第二种是用JMAIL,这东西不熟,也没成功,有没大侠帮小弟一把。

Function sendemailCDO
'---------------------------------------------send email--------------------------------------------------------
        Call OpenConnect()
        Dim jun_Sql,jun_rs,jun_email_content,jun_email_title
                                            
                jun_Sql="SELECT comm_Author,comm_Content,comm_Email FROM blog_Comment WHERE comm_ID ="&Request.QueryString("id")
               
                SET jun_rs=objConn.execute(jun_Sql)
                               '这几行是为了.htmlBody在邮件中较好地显示
                jun_email_content="您的评论为:<br/><br/>"&Replace(jun_rs("comm_Content"),"[REVERT=","<br/><hr/>")
                jun_email_content=Replace(jun_email_content,"回复]","回复<br/><br/>")
                jun_email_content=Replace(jun_email_content,"[/REVERT]","<br/>")&"<br/><hr/>"&Request.Form("inpName")&"于 "&Now()&" 回复<br/><br/>"&Request.Form("inpArticle")
               
                jun_email_title="亲爱的"&jun_rs("comm_Author")&",您在7jun.cn的评论有回复了"
               
       
                Const cdoSendUsingMethod="http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSendUsingPort=2
Const cdoSMTPServer="http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort="http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout="http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAuthenticate="http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoBasic=1
Const cdoSendUserName="http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword="http://schemas.microsoft.com/cdo/configuration/sendpassword"

Dim objConfig  ' As CDO.Configuration
Set objConfig = Server.CreateObject("CDO.Configuration")

Dim Fields     ' As ADODB.Fields
Set Fields = objConfig.Fields
With Fields
    .Item(cdoSendUsingMethod)       = cdoSendUsingPort
    .Item(cdoSMTPServer)            = "mail.7jun.cn"       '改成可用的外部邮件服务器域名
    .Item(cdoSMTPServerPort)        = 25
    .Item(cdoSMTPConnectionTimeout) = 10
    .Item(cdoSMTPAuthenticate)      = cdoBasic
    .Item(cdoSendUserName)          = "7jun@7jun.cn"   '以上服务器的用户名
    .Item(cdoSendPassword)          = "****"                       '密码
    .Update
End With

Dim objMessage ' As CDO.Message
Set objMessage = Server.CreateObject("CDO.Message")
Set objMessage.Configuration = objConfig
With objMessage
    .To       = "dzin@163.com"'jun_rs("comm_Email")                 '改成接收者的邮件地址    Request("txtEmail")
    .From     = "master@7jun.cn"          '改成发送人的邮件地址
    .Subject  = jun_email_title  '标题Request("txtSubject")
    .htmlBody = jun_email_content                        '正文Request("txtMessage")
    .Send
End With

Set Fields = Nothing
Set objMessage = Nothing
Set objConfig = Nothing
               
               
'---------------------------------------------send email------------------------------       
                               
End Function
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Function sendEmail

Call OpenConnect()
        Dim jun_Sql,jun_rs,jun_email_content,jun_email_title
                                            
                jun_Sql="SELECT log_id,comm_Author,comm_Content,comm_Email FROM blog_Comment WHERE comm_ID ="&Request.QueryString("id")
               
                SET jun_rs=objConn.execute(jun_Sql)
                jun_email_content="您的评论为:<br/><br/>"&Replace(jun_rs("comm_Content"),"[REVERT=","<br/><hr/>")
                jun_email_content=Replace(jun_email_content,"回复]","回复<br/><br/>")
                jun_email_content=Replace(jun_email_content,"[/REVERT]","<br/>")&"<br/><hr/>"&Request.Form("inpName")&"于 "&Now()&" 回复<br/><br/>"&Request.Form("inpArticle")
                jun_email_content=jun_email_content & "<br/><br/>请点击<a href=http://localhost/post/" & jun_rs(log_id) & ".html>http://localhost/post/" & jun_rs(log_id) & ".html</a>查看"
                jun_email_title="亲爱的"&jun_rs("comm_Author")&",您在7jun.cn的评论有回复了"
               
               
Set jmail = Server.CreateObject("JMAIL.Message") '建立发送邮件的对象
jmail.silent = true '屏蔽例外错误,返回FALSE跟TRUE两值j
mail.logging = true '启用邮件日志
jmail.Charset = "UTF-8" '邮件的文字编码为国标
jmail.ContentType = "text/html" '邮件的格式为HTML格式
jmail.AddRecipient "dzin@163.com" '邮件收件人的地址
jmail.From = "7jun@7jun.cn" '发件人的E-MAIL地址
jmail.MailServerUserName = "7jun@7jun.cn" '登录邮件服务器所需的用户名
jmail.MailServerPassword = "****" '登录邮件服务器所需的密码
jmail.Subject = jun_email_title '邮件的标题
jmail.Body = jun_email_content '邮件的内容
jmail.Prority = 3 '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
jmail.Send("mail.7jun.cn") '执行邮件发送(通过邮件服务器地址)
jmail.Close() '关闭对象


End Function


这些是放在cmd.asp中的。
另外我不知道怎么调用才好。

给的意见,希望是调试过能成功。谢谢!!

[ 本帖最后由 dzin 于 2007-5-3 08:37 编辑 ]

TOP

回复 #1 dzin 的帖子

这思路不错! 蛮渴望这功能的。但我也不知道怎么弄

TOP

用JMAIL是正解,具体用法你搜搜嘛!网上一大堆。
[AD]:个人BLOG:思想碎片@Zx.MYS
[说明]:1.有事请发帖,论坛短消息已禁用。2.写Z-Blog程序的不是我,是另外一个zx。3:准备高考,消失一年。

TOP

还得要看空间是否支持, 我的主机就不支持Jmail.

TOP

想法不错,期待续集。。。。。。。。。。
快毕业了,打算做个求职网站。。。。

TOP

  新点子?

TOP

555555555555555555,我自己对ASP了解不多,实在找不到解决方法才上这问的,从去年就一直在想办法,

我看这高人挺多的,站出来一两个啊,我的空间支持JMAIL(实际上本来不支持,为了实现这功能我跟客服说了,帮我装了)

TOP

估计很少有人搞这东西, 特别是国内. 国外倒是有很多完整的"邮件中心"之类的代码. 如果您想参考的话我这也有一个. 别的忙我是帮不上了, 我的空间就从来没支持过Jmail, 所以也从来不关心这个.

TOP

而且大多数的邮件系统都有反垃圾,如果你的主机不能被反向dns解析(世界垃圾邮件组织这么规定的)那就会被判断为SPAM。所以这事你还得问问客服。
[AD]:个人BLOG:思想碎片@Zx.MYS
[说明]:1.有事请发帖,论坛短消息已禁用。2.写Z-Blog程序的不是我,是另外一个zx。3:准备高考,消失一年。

TOP

对, 就如楼上所说. 我曾经错用别人的一点空间搞了个邮件朋友圈. 用的一个英国的程序. 结果大约只过了两个星期就没人收到的发出的邮件了.
再后来我转成了126的邮箱来做服务器邮箱, 但没过多久还是有很多人收不到了...

可能邮箱A总是向邮箱B发出邮件, 而邮箱B却不回复的情况下, 邮箱B的邮局会作出反应的.

[ 本帖最后由 haphic 于 2007-5-5 22:04 编辑 ]

TOP

我晕!!有这么麻烦?!!

TOP

发新话题