asp空间判断jmail组件是否安装或支持的代码

来源:转载

今天在开发用户留言,一份存到数据库中,另外一份要发送到制定的邮箱中,因不知道服务器是否支持,如果支持则发送留言信息到email中。
首先,必须有错误继续进行的声明On Error Resume Next
然后尝试简历jmail实例:
Dim JMail
Set JMail=Server.CreateObject("JMail.Message")

对实例做出判断,如果组件没有安装成功,则没有创建实例:
If JMail Is Nothing Then
Response.Write "不支持"
Else
Response.Write "支持"
End If

其他组件同样处理,非常简单了。
最好在global文件中处理,里面使用的时候不用那么麻烦了。
最好的方法把邮件生成放到一个表里,然后再说发送的事情。
 

view source

print?

01FunctionIsObjInstalled(strClassString) 

02OnErrorResumeNext 

03IsObjInstalled = False 

04Err = 0 

05DimxTestObj 

06SetxTestObj = Server.CreateObject(strClassString) 

07If0 = Err ThenIsObjInstalled = True 

08SetxTestObj = Nothing 

09Err = 0 

10EndFunction

判断代码:
if IsObjInstalled("JMail.Message")=True then{
if IsObjInstalled("JMail.Message") =True then
SendStat = Jmail("***@jb51.net","来自网上的客户留言","<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312""><title>网站用户留言</title></head><body>留言人:"&txtname&"<br>性别:"&xingbie&"<br>咨询网站:"&txtweb&"<br>联系方式:"&txttel&"<br>留言内容:"&content&"<br>IP地址:"&ipaddress&"<br>留言时间:"&now()&"<br><br>本邮件由系统自动发送,无须回复<!--脚本之家www.jb51.net--><br><br></body></html>","GB2312","text/html")
end if
}

jmail发信函数
 

view source

print?

01' ============================================ 

02' jmail发送邮件 

03' ============================================ 

04FunctionJmail(mailTo,mailTopic,mailBody,mailCharset,mailContentType) 

05  

06'入口参数: 

07' mailTo 收件人email地址 

08' mailTopic 邮件主题 

09' mailBody 邮件正文(内容) 

10' mailCharset 邮件字符集,例如GB2312或US-ASCII 

11' mailContentType 邮件正文格式,例如text/plain或text/html 

12'返回值: 

13' 字符串,发送成功后返回OK,不成功返回错误信息 

14'使用方法: 

15' 1)设置好常量,即以Const开头的变量 

16' 2)使用类似如下代码发信 

17'Dim SendStat 

18'SendStat = Jmail("[email protected]","测试Jmail","这是一封<br/>测试信!","GB2312","text/html") 

19'Response.Write SendStat 

20  

21'***************根据需要设置常量开始***************** 

22DimConstFromNameCn,ConstFromNameEn,ConstFrom,ConstMailDomain,ConstMailServerUserName,ConstMailServerPassword 

23  

24ConstFromNameCn = "彩票网"'发信人中文姓名(发中文邮件的时候使用),例如‘张三' 

25ConstFromNameEn = "bc5"'发信人英文姓名(发英文邮件的时候使用),例如‘zhangsan' 

26ConstFrom = "[email protected]"'发信人邮件地址,例如‘[email protected]

27ConstMailDomain = "smtp.163.com"'smtp服务器地址,例如smtp.163.com 

28ConstMailServerUserName = "[email protected]"'smtp服务器的信箱登陆名,例如‘zhangsan'。注意要与发信人邮件地址一致! 

29ConstMailServerPassword = "www.jb51.net"'smtp服务器的信箱登陆密码 

30'***************根据需要设置常量结束***************** 

31'-----------------------------以下内容无需改动------------------------------ 

32OnErrorResumeNext 

33DimmyJmail 

34SetmyJmail = Server.CreateObject("JMail.Message"

35myJmail.Logging = False'记录日志 

36myJmail.ISOEncodeHeaders = False'邮件头不使用ISO-8859-1编码 

37myJmail.ContentTransferEncoding = "base64"'邮件编码设为base64 

38myJmail.AddHeader "Priority","3"'添加邮件头,不要改动! 

39myJmail.AddHeader "MSMail-Priority","Normal"'添加邮件头,不要改动! 

40myJmail.AddHeader "Mailer","Microsoft Outlook Express 6.00.2800.1437"'添加邮件头,不要改动! 

41myJmail.AddHeader "MimeOLE","Produced By Microsoft MimeOLE V6.00.2800.1441"'添加邮件头,不要改动! 

42myJmail.Charset = mailCharset 

43myJmail.ContentType = mailContentType 

44  

45IfUCase(mailCharset) = "GB2312"Then 

46myJmail.FromName = ConstFromNameCn 

47Else 

48myJmail.FromName = ConstFromNameEn 

49EndIf 

50  

51myJmail.From = ConstFrom 

52myJmail.Subject = mailTopic 

53myJmail.Body = mailBody 

54myJmail.AddRecipient mailTo 

55myJmail.MailDomain = ConstMailDomain 

56myJmail.MailServerUserName = ConstMailServerUserName 

57myJmail.MailServerPassword = ConstMailServerPassword 

58myJmail.Send ConstMailDomain 

59myJmail.Close 

60SetmyJmail=nothing 

61  

62IfErr Then 

63Jmail=Err.Description 

64Err.Clear 

65Else 

66Jmail="OK" 

67EndIf 

68  

69OnErrorGoto 0 

70EndFunction

分享给朋友:
您可能感兴趣的文章:
随机阅读: