article:
tag:
just test

ASP > ASP Class(类) 之 使用内建组件 cdo.message 发送邮件 By shawl.qiu 上一篇 | 下一篇

ASP Class(类) 之 使用内建组件 cdo.message 发送邮件 By shawl.qiu


摘要:
前两天也写了一篇相关的文章: ASP CDO.Message 发送邮件完整实例 By shawl.qiu
URL:   http://blog.csdn.net/btbtd/archive/2006/09/11/1210050.aspx

不过我发觉还没写过类, 所以呗, 就试了一下, 其实 ASP 的类挻简单的, 喏, 这不今天看相关信息, 现在就出产文章啦 :)

其实吧, 我觉得 ASP类 和普通函数过程可以比喻为:
类是一个箱子, 函数和过程是箱子里的东西. 
使用类可以简化调用函数的操作, 用 get 实现.
用 let 在类外边给参数赋值, 至于 set, 目前还没用过. 

类相关信息:
类名: cCdoMessage
作用: 使用 ASP 的内建组件 CDO.Message 发送电子邮件

附注: 不支持附件.

目录:
1. cCdoMessage 类内容
2. 调用 cCdoMessage 类
3. 预览

shawl.qiu
2006-09-12
http://blog.csdn.net/btbtd

1. cCdoMessage 类内容
    linenum
  1. <%    class cCdoMessage
  2.     '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  3.     ' ASP Class(类) 之 使用内建组件 cdo.message 发送邮件 By shawl.qiu
  4.     '''''''''''''''''''''''''
  5.     ' sample call:
  6.     '''''''''''
  7.     '    dim objCdo
  8.     '    set objCdo= new cCdoMessage
  9.     '        with objCdo
  10.     '            .header ' 头部信息, 非必须
  11.     '            .rQs=request.queryString("id") '查询 ID, 必选项
  12.     '            set .rForm=request.form '提交表单集合, 必选项
  13.     '                .pgCdoSendMail
  14.     '            set .rForm=nothing
  15.     '            
  16.     '            .mAction="?id=cdo" '提交表单 URL, 必选项
  17.     '            ''''''''''''''''''''''''''''''''''''''''''''
  18.     '            ' start 表单域默认内容, 非必须
  19.     '            .mFrom="shawlqiu@21cn.com"
  20.     '            .mTo="shawl.qiu@gmail.com,btbtd@msn.com"
  21.     '            .mCc="btbtd@yahoo.com.cn"
  22.     '            .mBcc="shawl.qiu+2@gmail.com"
  23.     '            .mSubject="mail subject"
  24.     '            .mBody="test mail body"&chr(13)&"中文"&chr(13)&"<h2>html format</h2>"
  25.     '            .mSmtp="smtp.21cn.com"
  26.     '            .mPort=25
  27.     '            .mTimeout=60
  28.     '            .mUser="shawlqiu"
  29.     '            .mPwd="不告诉你"
  30.     '            ' end 表单域默认内容, 非必须
  31.     '            ''''''''''''''''''''''''''''''''''''''''''''
  32.     '            .pgCdoform ' 发送邮件表单, 必选项
  33.     '            
  34.     '            .info ' 作者信息, 非必须
  35.     '        end with
  36.     '    set objCdo=nothing
  37.     '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  38.         public sub info()
  39.             response.write "<br/>Subject: ASP Class(类) 之 使用内建组件 cdo.message 发送邮件 By shawl.qiu<br/>"
  40.             response.write "Author: shawl.qiu<br/>"
  41.             response.write "Version: 1.0<br/>"
  42.             response.write "Date: 2006-09-12<br/>"
  43.             response.write "Blog:   http://blog.csdn.net/btbtd<br/>"
  44.             response.write "E-Mail: shawl.qiu@gmail.com<br/>"
  45.         end sub
  46.     
  47.         public rQs, rForm
  48.         public mAction, mFrom, mTo, mCc, mBcc, mSubject, mBody, mSmtp, mPort, mTimeout, mUser, mPwd
  49.     
  50.         public function header()
  51.             response.write "<h1 style=""text-align:center!important;color:red!important; "">ASP Class(类) 之 使用内建组件 cdo.message 发送邮件 By shawl.qiu</h1>"
  52.             response.write "<h2 style=""float:right!important;margin:0px;padding:0px; ""><a href="" http://blog.csdn.net/btbtd"">shawl.qiu</a> code</h2>"
  53.         end function
  54.         
  55.         public property get pgCdoform
  56.             pgCdoform=fCdoForm(mAction,mFrom, mTo, mCc, mBcc, mSubject, mBody, mSmtp, mPort, mTimeout, mUser, mPwd)
  57.         end property
  58.         
  59.         public property get pgCdoSendMail
  60.             pgCdoSendMail=fCdoSendMail(rQs,rForm)
  61.         end property
  62.  
  63.         private property get goBack
  64.             goBack=fPmt("邮件已发送, 3 秒后返回.",3,request.ServerVariables("HTTP_REFERER"))
  65.         end property
  66.         
  67.         private property get goBackErr
  68.             goBackErr="<a href="""&request.ServerVariables("HTTP_REFERER")&""" style=""text-align:center!important; display:table; width:100%;"">返回</a>"
  69.         end property
  70.  
  71.         private    function fPmt(promptWord,second,url)
  72.             response.write "<div class=""absltMid""><meta http-equiv=""refresh"" content="""
  73.             response.write second
  74.             response.write ";URL="
  75.             response.write url
  76.             response.write """>"
  77.             response.write promptWord
  78.             response.write "</div>"
  79.         end function 
  80.  
  81.         private function fCdoSendMail(rQs,rForm)
  82.             if rQs="" or rQs<>"cdo" then exit function
  83.             if isObject(rForm)=false then exit function
  84.             dim temp
  85.             for each temp in rForm
  86.                 select case temp
  87.                     case "mTextBody"
  88.                     case "mHtmlBody"
  89.                     case "mFile"
  90.                     case "mSsl"
  91.                     case else
  92.                         execute "dim "&temp&":"&temp&"=request.form(temp)"
  93.                 end select
  94.             next
  95.             dim mSsl, mTextBody, mHtmlBody
  96.                 mSsl=request.form("mSsl")
  97.                 mTextBody=request.form("mTextBody")
  98.                 mHtmlBody=request.form("mHtmlBody")
  99.                 mBody="<meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312"" />"&chr(13)&mBody
  100.                 
  101.                 if mSsl="" then mSsl=false else mSsl=true
  102.             dim cdo 
  103.             set cdo=createObject("cdo.message")
  104.                 'configuration information for the remote SMTP Server
  105.                 with cdo.configuration.fields
  106.                     .Item(" http://schemas.microsoft.com/cdo/configuration/sendusing") = mSend
  107.                     .item(" http://schemas.microsoft.com/cdo/configuration/smtpserver")= mSmtp 'SMTP 服务器地址
  108.                     .item(" http://schemas.microsoft.com/cdo/configuration/smtpserverport")= mPort '端口 25
  109.                     .item(" http://schemas.microsoft.com/cdo/configuration/sendusername")= mUser '用户名
  110.                     .item(" http://schemas.microsoft.com/cdo/configuration/sendpassword")= mPwd '用户密码
  111.                     .item(" http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")= mAuth 'NONE, Basic (Base64 encoded), NTLM
  112.                     .item(" http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout")= mTimeout '超时设置, 以秒为单位
  113.                     .Item(" http://schemas.microsoft.com/cdo/configuration/smtpusessl") = mSsl '是否使用套接字 true/false 
  114.                     .Update
  115.                 end with
  116.                 with cdo
  117.                     .from=mFrom
  118.                     .to=mTo
  119.                     if mCc<>"" then .cc=mCc
  120.                     if mBcc<>"" then .bcc=mBcc
  121.                     .subject=mSubject
  122.                     if mTextBody<>"" then .textbody=mBody
  123.                     if mHtmlBody<>"" then .htmlbody=mBody
  124.                     
  125.                     'if len(mFile)>0 then .Addattachment mFile
  126.                     '// CDO 发附件规则: 当前目录的文件可用变量, 不是当前的目录不能用变量
  127.                     On Error Resume Next
  128.                     .send
  129.                     if err.number<>0 then response.write "邮件发送失败, 错误编号: "&_
  130.                     err.number&"<br/>错误描述: "&err.description&goBackErr else goBack
  131.                 end with 'shawl.qiu code'
  132.             set cdo=nothing
  133.         end function
  134.  
  135.         private function fCdoForm(mAction,mFrom, mTo, mCc, mBcc, mSubject, mBody, mSmtp, mPort, mTimeout, mUser, mPwd)
  136.         if mAction="" then exit function %>
  137.             <form action="<% response.write mAction %>" method="post" name="mCdo" id="mCdo">
  138.               <p>From: 
  139.                 <input name="mFrom" type="text" value="<% response.write mFrom %>" size="50%"/><br />
  140.                 To: <input name="mTo" type="text" value="<% response.write mTo %>" size="50%" /> 
  141.                 <br />
  142.                 Cc: <input name="mCc" type="text" value="<% response.write mCc %>" size="50%" /><br />
  143.                 Bcc: <input name="mBcc" type="text" id="mBcc" value="<% response.write mBcc %>" size="50%" /> <br />
  144.                 Subject: <input name="mSubject" type="text" value="<% response.write mSubject %>" size="50%" /> <br />
  145.                 Email Format: 
  146.                 text: <input type="checkbox" name="mTextBody" value="yes" checked="checked" /> 
  147.                 html: <input type="checkbox" name="mHtmlBody" value="yes" /><br />
  148.                 Text:<br /> <textarea name="mBody" cols="77" rows="10"><% response.write mBody %></textarea> <br /> 
  149.                 Remote SMTP: <input name="mSmtp" type="text" value="<% response.write mSmtp %>" />
  150.                 Port: <input name="mPort" type="text" value="<% response.write mPort %>" size="5" />
  151.                 Timeout: <input name="mTimeout" type="text" value="<% response.write mTimeout %>" size="5" />
  152.                 Sec SSL: <input type="checkbox" name="mSsl" value="ture" /> <br />
  153.                 Username: <input name="mUser" type="text" value="<% response.write mUser %>" /> <br />
  154.                 Password: <input name="mPwd" type="password" value="<% response.write mPwd %>" />  <br />
  155.                 SMTP验证选项: 
  156.                 <select name="mAuth">
  157.                     <option value="0">匿名验证</option>
  158.                     <option value="1" selected="selected">普通验证</option>
  159.                     <option value="2">NTLM 验证</option>
  160.                 </select> 
  161.                  邮件发送选项: 
  162.                  <select name="mSend">
  163.                     <option value="1">Send Using Pickup</option>
  164.                     <option value="2" selected="selected">Send Using Port</option>
  165.                  </select>
  166.                  <br />
  167.                 <input type="submit" value="Submit" />   <input type="reset" value="Reset" />
  168.             </p>
  169.             </form><!-- shawl.qiu code -->
  170.     <%     end function 
  171.     end class %>

2. 调用 cCdoMessage 类
    linenum
  1. <%
  2.     dim objCdo
  3.     set objCdo= new cCdoMessage
  4.         with objCdo
  5.             .header ' 头部信息, 非必须
  6.             .rQs=request.queryString("id") '查询 ID, 必选项
  7.             set .rForm=request.form '提交表单集合, 必选项
  8.                 .pgCdoSendMail
  9.             set .rForm=nothing
  10.             
  11.             .mAction="?id=cdo" '提交表单 URL, 必选项
  12.             ''''''''''''''''''''''''''''''''''''''''''''
  13.             ' start 表单域默认内容, 非必须
  14.             .mFrom="shawlqiu@21cn.com"
  15.             .mTo="shawl.qiu@gmail.com,btbtd@msn.com"
  16.             .mCc="btbtd@yahoo.com.cn"
  17.             .mBcc="shawl.qiu+2@gmail.com"
  18.             .mSubject="mail subject"
  19.             .mBody="test mail body"&chr(13)&"中文"&chr(13)&"<h2>html format</h2>"
  20.             .mSmtp="smtp.21cn.com"
  21.             .mPort=25
  22.             .mTimeout=60
  23.             .mUser="shawlqiu"
  24.             .mPwd="不告诉你"
  25.             ' end 表单域默认内容, 非必须
  26.             ''''''''''''''''''''''''''''''''''''''''''''
  27.             .pgCdoform ' 发送邮件表单, 必选项
  28.             
  29.             .info ' 作者信息, 非必须
  30.         end with
  31.     set objCdo=nothing
  32. %>

3. 预览

ASP Class(类) 之 使用内建组件 cdo.message 发送邮件 By shawl.qiu

shawl.qiu code

From:
To:
Cc:
Bcc:
Subject:
Email Format: text: html:
Text:

Remote SMTP: Port: Timeout: Sec SSL:
Username:
Password:
SMTP验证选项: 邮件发送选项:


Subject: ASP Class(类) 之 使用内建组件 cdo.message 发送邮件 By shawl.qiu
Author: shawl.qiu
Version: 1.0
Date: 2006-09-12
Blog: http://blog.csdn.net/btbtd
E-Mail: shawl.qiu@gmail.com


@suches
http://btbtd.com/mods/blog/item.php?uid=1&item=3808

发表于 @ 2006-09-12 08:00:00

该文章暂时没有回复
评论内容:
昵称:
验证码: