首页 - 网络编程 - ASP教程

ASP使用JMail.Message发送邮件的用法及常见问题

2011-12-09 14:49:06- - 点击数:

 今天收一个ASP通过jmail组件发送邮件方法(不过对于空间需要支持jmail组件)。

asp使用JMail.Message发送邮件方法:

ASP/Visual Basic Code复制内容到剪贴板
  1. <%   
  2. On error resume next '隐藏错误,不顾运行时错误,继续执行程序   
  3. Dim JMail, contentId   
  4. Set JMail = Server.CreateObject("JMail.Message")    
  5. JMail.Charset = "gb2312" ' 邮件字符集,默认为"US-ASCII"   
  6. ' JMail.ISOEncodeHeaders = False ' 是否进行ISO编码,默认为True   
  7.   
  8. ' 发送者信息(可用变量方式赋值)   
  9. JMail.From = "someone@51windows.net" ' 发送者地址   
  10. JMail.FromName = "海娃" ' 发送者姓名   
  11. JMail.Subject = "邮件主题" ' 邮件主题   
  12.   
  13. ' 身份验证   
  14. JMail.MailServerUserName = "myusername" ' 身份验证的用户名   
  15. JMail.MailServerPassword = "mypassword" ' 身份验证的密码   
  16.   
  17. ' 设置优先级,范围从1到5,越大的优先级越高,3为普通   
  18. JMail.Priority = 3   
  19.   
  20. JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")   
  21.   
  22. ' 加入一个收件人【变量email:收件人地址】可以同一语句重复加入多个   
  23. JMail.AddRecipient("someone@somehost.com")   
  24.   
  25. ' 加入附件【变量filename:附件文件的绝对地址,确保用户IUSR_机器名有访问的权限】   
  26. ' 【参数设置是(True)否(False)为Inline方式】   
  27. 'contentId = JMail.AddAttachment (Server.MapPath("jmail.asp"), True)   
  28.   
  29. ' 邮件主体(HTML(注意信件内链接附件的方式))   
  30. JMail.HTMLBody = "<html><head><META content=zh-cn http-equiv=Content-Language><meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312""><style type=text/css>A:link { FONT-SIZE: 9pt; TEXT-DECORATION: none; color: #000000}A:visited {FONT-SIZE: 9pt; TEXT-DECORATION: none; color: #666666}A:hover {COLOR: #ff6600; FONT-SIZE: 9pt; TEXT-DECORATION: underline}BODY {FONT-SIZE: 9pt} --></style></head><body><font color=red>邮件正文</font><br><font color=green>邮件正文</font><br><b>邮件正文</b></body></html>"  
  31.   
  32. ' 邮件主体(文本部分)   
  33. JMail.Body = "我们的邮件采用了HTML格式,但是您的邮件查看软件可能不支持。。。邮件正文,邮件正文,邮件正文"  
  34.   
  35. ' 发送【调用格式:objJMail.Send([username:password@]SMTPServerAddress[:Port])】   
  36. JMail.Send("smtp.163.com")   
  37.   
  38. ' 关闭并清除对象   
  39. JMail.Close()   
  40. Set JMail = Nothing  
  41.   
  42. if err.number<>0 then   
  43.     response.write "发送发送失败!"  
  44. else   
  45.     response.write "邮件发送成功!"  
  46. end if   
  47. %>    

常见错误:
1.运行提示500错误
asp使用jmail发送邮件,对于运行在网站上需要该空间/主机支持jmail组件。可以通过下面简单的代码测试一下你空间上是否支持jmail组件:

ASP/Visual Basic Code复制内容到剪贴板
  1. <%    
  2. on   error   resume   next    
  3. Set   JMail=Server.CreateObject( "JMail.SMTPMail ")    
  4. if   err   then    
  5. response.write   "服务器没有安装Jmail,因此不支持! "    
  6. end   if    
  7. %>   

如果您在自己的机器上试,请下载Jmail.dll,下载解压后,双击Setup.bat 即可完成安装!

2. asp使用jmail发邮件,收到后标题是乱码,内容正常是中文
设置一下下面:

ASP/Visual Basic Code复制内容到剪贴板
  1. JMail.ISOEncodeHeaders   =   False    
  2. jmail.ContentTransferEncoding   =   "base64 "    
  3. jmail.Encoding   =   "base64 "   

另附:asp使用CDONTS.NewMail发送邮件方法

ASP/Visual Basic Code复制内容到剪贴板
  1. <%     
  2. dim  objCDOMail     
  3. Set  objCDOMail  =  Server.CreateObject("CDONTS.NewMail")     
  4. objCDOMail.From  ="xxx@hotmail.com"             
  5. objCDOMail.To  =xxx@hotmail.com  '接收人的邮箱(将表单内容发邮件到一固定地址)         
  6. objCDOMail.Subject  ="邮件发送测试"     
  7. body=request.Form("cont")    '获取表单内容     
  8. objCDOMail.Body  =body       
  9. objCDOMail.BodyFormat=1    '设置为HTML格式                 
  10. objCDOMail.Send     
  11. Set  objCDOMail  =  Nothing     
  12. %>   

常见问题:
1.使用CDONTS.NewMail发送邮件需空间支持CDONTS组件。
如果您在自己的机器上试,请下载cdonts.dll,下载解压后,拷到windows的system32目录下然后在开始运行里输入regsvr32 cdonts.dll回车注册,注册成功cdonts组件就可以使用了!

2.测试发送成功但未收到邮件
还没有解决,有高手不吝赐教一下,呵呵。

本站导航