网站首页 > 书籍教程 > ASP教程 > ASP用JMail、CDO发送邮件

ASP用JMail、CDO发送邮件

  • 作者:互联网
  • 时间:2009-06-23 16:38:45

  前一段时间有发过一个简单的JMAIL邮件发邮件的代码,今天就把这个代码做一个具体的注解,并增加了另外两个格式的代码,并举几个简单的例子:
首先是jm***.smtpmail的核心代码:

<%
  Set jmail = Se***r.CreateObject("JM***.SMTPMail")   '创建一个JMAIL对象
  jm***.silent = true   'JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE
  jm***.logging = true   '启用使用日志
  jm***.Charset = "GB2312"  '邮件文字的代码为简体中文
  jm***.ContentType = "text/html"  '邮件的格式为HTML的
  jm***.ServerAddress = "Server Address"   '发送邮件的服务器
  jm***.AddRecipient Email    '邮件的收件人
  jm***.SenderName = "SenderName"    '邮件发送者的姓名
  jm***.Sender = "Email Address"    '邮件发送者的邮件地址
  jm***.Priority = 1   '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
  jm***.Subject = "Mail Subject"  '邮件的标题
  jm***.Body = "Mail Body"   '邮件的内容
  jm***.AddRecipientBCC Email   '密件收件人的地址
  jm***.AddRecipientCC Email   '邮件抄送者的地址
  jm***.Execute()   '执行邮件发送
  jm***.Close ;   '关闭邮件对象
%>

  w3 Jmail4.3组件重新设计了其内部结构——使用Message对象代替原来的单一对象Jm***.smtpmail发送邮件,有些方法需要身份验证的(如163、yahoo等),可以用下面的方法解决:
<%
     Set jmail = Se***r.CreateObject("JM***.Message")   '建立发送邮件的对象
     jm***.silent = true    '屏蔽例外错误,返回FALSE跟TRUE两值j
     ma***logging = true   '启用邮件日志
     jm***.Charset = "GB2312"     '邮件的文字编码为国标
     jm***.ContentType = "text/html"    '邮件的格式为HTML格式
     jm***.AddRecipient Email     '邮件收件人的地址
     jm***.From = "Email From for Sender"   '发件人的E-MAIL地址
     jm***.MailServerUserName = "UserName of Email"     '登录邮件服务器所需的用户名
     jm***.MailServerPassword = "Password of Email"     '登录邮件服务器所需的密码
     jm***.Subject = "Mail Subject"    '邮件的标题
     jm***.Body = "Mail Body"      '邮件的内容
     jm***.Prority = 1      '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
     jm***.Send("Server Address")     '执行邮件发送(通过邮件服务器地址)
     jm***.Close()   '关闭对象
%>

  再讲一下微软自带的CDONTS组件的发信的方法:

<%
    Set cdomail = Se***r.CreateObject("CD***S.NewMail")  '建立邮件对象
    cd***il.Subject = "Mail Subject"   '邮件标题
    cd***il.From = "Sender's Mail"   '发件人的地址
    cd***il.To = "Email will from"   '收件人的地址
    cd***il.Body = "Mail Body"   '邮件的内容
    cd***il.Send ;   '执行发送
%>

  这种方法发送邮件是最简单的,同时也带来一定的问题,就是很少有服务器会开这项服务!


  我们写程序,一般情况下都是说要代码模块化,这样方便维护,同时也方便移植。因此,我在这里将这个发邮件的写成一个子程,在调用的时候可以直接调用(当然,如果你高兴写成函数的话也是可以的,这个主要是看个人兴趣):

<%
  '参数说明
  'Subject     : 邮件标题
  'MailAddress : 发件服务器的地址,如sm***163.com
  'Email       : 收件人邮件地址
  'Sender      : 发件人姓名
  'Content     : 邮件内容
  'Fromer      : 发件人的邮件地址

  Sub SendAction(subject, mailaddress, email, sender, content, fromer)
      Set jmail = Se***r.CreateObject("JM***.SMTPMail")   '创建一个JMAIL对象
      jm***.silent = true   'JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE
      jm***.logging = true   '启用使用日志
      jm***.Charset = "GB2312"  '邮件文字的代码为简体中文
      jm***.ContentType = "text/html"  '邮件的格式为HTML的
      jm***.ServerAddress = mailaddress   '发送邮件的服务器
      jm***.AddRecipient Email    '邮件的收件人
      jm***.SenderName = sender   '邮件发送者的姓名
      jm***.Sender = fromer    '邮件发送者的邮件地址
      jm***.Priority = 1   '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
      jm***.Subject = subject  '邮件的标题
      jm***.Body = content   '邮件的内容
      '由于没有用到密抄跟抄送,这里屏蔽掉这两句,如果您有需要的话,可以在这里恢复
      'jm***.AddRecipientBCC Email   '密件收件人的地址
      'jm***.AddRecipientCC Email   '邮件抄送者的地址
      jm***.Execute()   '执行邮件发送
      jm***.Close ;   '关闭邮件对象
  End Sub
 
  '调用此Sub的例子
  Dim strSubject,strEmail,strMailAdress,strSender,strContent,strFromer
  strSubject     = "这是一封用JMAIL发送的测试邮件"
  strContent     = "JMail组件发送测试成功!"
  strEmail       = "ru***[email protected]">ru***[email protected]"
  strFromer      = "ru***[email protected]">ru***[email protected]"
  strMailAddress = "ma***ubbcn.com"

  Call SendAction (strSubject,strMailaddress,strEmail,strSender,strContent,strFromer)
%>

  以上是我对发邮件代码的一个粗略的见解,忘大家不吝赐教!