一个简单的邮件类[使用jmail组件发送]

类别:网站制作 点击:0 评论:0 推荐:

<%
'****************************************************************************************
'*声    明:如果使用此程序请保留此段信息
'*程 序 名:TevMail
'*功    能:发送邮件(服务器上必须装有JMail4.3版本)
'*开发日期:2005-01-13
'*优    点:如果自己写的JMail程序,设置很多值,如服务器地址,密码,用户名,等等,使用本类后,最短
'*     只需要三行语句便可以发送邮件.具体操作请看下面的示例.
'*示    例:
'*          Set abc = New JMail
'*          abc.to = "您的信箱地址"
'*          abc.send
'*          <!-- #include file="路径/TevMail.asp" -->
'*   大家可以测试一下,用以上四句语句建立一个ASP页面,然后运行一下,你的邮件就发出去了!
'*   但如果我需要设置邮件标题,发件人,内容等等怎么办呢?请自己参阅下列参数.
'*具体参数:
'*   .ServerAddress = "smtp.126.com" '此处设置自己的邮件服务器
'*   .username = "weili.cn"    '邮件服务器用户名
'*   .password = "*******"    '邮件服务器密码
'*   .from = "weili.cn"     '发件人地址
'*   .Fromname = "liwei"     '发件人姓名
'*   .to = "[email protected]"   '收件人姓名
'*   .Subject = "测试"     '邮件主题
'*   .Body = "test"      '邮件内容
'*错误处理:
'*   .number   '发送后可以用此值来判断是否发送成功,值<=0时则发送成功
'*   .error   '发送后如果有错误,可以用此值来提取错误信息
'*   .about   '当前类的版权信息,为了尊重他人成果,请勿修改,谢谢!
'****************************************************************************************
Class TevMail
 Private ObjMail
 Private sUserName
 Private sPassword
 Private sFrom
 Private sFromName
 Private sSubject
 Private sBody
 Private sTo
 Private sServer
 Private iNumber
 Private sError
 Private sAbout
 
 Private Sub Class_Initialize()
  sAbout = "程序名:邮件发送类<br>" & _
     "编  写:Tellov<br>" & _
     "日  期:2005-01-13<br>" & _
     "备  注:欢迎使用本类,如果需要帮助或者有好的建议,请联系我,谢谢!<br>" & _
     " Q Q :40386978<br>"& _
     "EMail:[email protected]<br>"
  sUserName = ""
  sPassword = ""
  sFrom = ""
  sFromName = ""
  sSubject = ""
  sBody = ""
  sTo = ""
  sServer = ""
  iNumber = 0
  sError = ""

  Set ObjMail = Server.CreateObject("JMail.Message")
  with ObjMail
   .silent = true
   .Logging = true
   .Charset = "gb2312"
   .MailServerUserName = "tevmail"
   .MailServerPassword = "tevmail"
   .From = "[email protected]"
   .FromName = "Tellov"
   .Subject = "欢迎使用JMail类!"
   .Body = "本类由Tellov编写,欢迎大家交流学习,[email protected]"
  end with
 end Sub
 
 Private Sub Class_Terminate()
  Set ObjMail = nothing
 end Sub
 
 public Property Let ServerAddress(sInput)
  sServer = sInput
 end Property
 
 Public Property Let UserName(sInput)
  sUserName = sInput
 end Property
 
 Public Property Let Password(sInput)
  sPassword = sInput
 end Property
 
 Public Property Let [To](sInput)
  sTo = sInput
 end Property
 
 Public Property Let From(sInput)
  sFrom = sInput
 end Property
 
 Public Property Let FromName(sInput)
  sFromName = sInput
 end Property
 
 PubLic Property Let Subject(sInput)
  sSubject = sInput
 end Property
 
 Public Property Let Body(sInput)
  sBody = sInput
 end Property
 
 Public Property Get Number
  Number = iNumber
 end Property
 
 Public Property Get Error
  Error = sError
 end Property
 
 Public ProPerty Get About
  About = sAbout
 end Property
  
 Private Function CheckAddress(sAddress)
  Dim regEx,RegExpTest
  Set regEx = New RegExp 
  regEx.Pattern = "^[\w\.]+@{1}\w+\.{1}\w+$"
  regEx.IgnoreCase = false
  RegExpTest = regEx.test(sAddress)
  if RegExpTest then
   CheckAddress = true
  else
   CheckAddress = false
  end if  
 end Function
 
 Private Function CheckMail()
  if sServer = "" then
   iNumber = -1
   sError = sError & "您的[服务器地址]没有填写<br>"
  end if
  
  if sUsername = "" then
   iNumber = -1
   sError = sError & "您的[服务器用户名]没有填写<br>"
  end if
  
  if sPassword = "" then
   iNumber = -1
   sError = sError & "您的[服务器密码]没有填写<br>"
  end if
  
  if sFrom = "" then
   iNumber = -1
   sError = sError & "您的[发件人地址]没有填写<br>"
  end if
  
  if sFromName = "" then
   iNumber = -1
   sError = sError & "您的[发件人]没有填写<br>"
  end if
  
  if sSubject = "" then
   iNumber = -1
   sError = sError & "您的[邮件标题]没有填写<br>"
  end if
  
  if sBody = "" then
   iNumber = -1
   sError = sError & "您的[邮件内容]没有填写<br>"
  end if
  
  if sError <> "" then
   sError = "以下选项您没有填写,程序将用默认配置发送邮件<br>" & sError
  end if
  
  if not CheckAddress(sTo) then
   iNumber = 101
   sError = "收件人地址格式不正确<br>"
  end if
  
  if sFrom<>"" and sUsername<>"" and sPassword<>"" and sServer<>"" and instr(sFrom,sUsername) = 0 and instr(sUsername,sFrom) = 0 then
   iNumber = 102
   sError = "发件人服务器用户名和发件地址不匹配<br>"
  end if
  
  if iNumber<=0 then
   CheckMail = true
  else
   CheckMail = false
  end if
 end Function
 
 Public Function Send()
  on error resume next
  if CheckMail() then
   with ObjMail
    if sFrom<>"" then
     .From = sFrom
    end if
    if sFromName<>"" then
     .FromName = sFromName
    end if
    if sSubject<>"" then
     .Subject = sSubject
    end if
    if sBody<>"" then
     .Body = sBody
    end if
    .AddRecipient sTo
    
    if sUserName = "" or sPassWord = "" or sServer = "" then
     .Send("smtp.126.com")
    else
     .MailServerUserName = sUserName
     .MailServerPassword = sPassword 
     .Send(sServer)
    end if
   end With
  end if
  
  if err.number <> 0 then
   iNumber = err.number
   sError = err.Description & "<br>" & err.HelpContext
  end if
 End Function
end Class
%>

本文地址:http://com.8s8s.com/it/it30883.htm