article:
tag:
just test

ASP > ASP?CDO.Message?发送邮件完整实例?By?shawl.qiu 上一篇 | 下一篇

ASP CDO.Message 发送邮件完整实例 By shawl.qiu


作用:
ASP 无组件发送电子邮件
实现了直接套用式功能, 只需修改少许选项, 即可使用. 

说明:
主要操作皆封装在两个函数里, 一个为发送邮件表单(名 fCdoForm), 一个为发送邮件操作(名 fCdoSendMail)
除主收件人以外, 支持 抄送, 密送.
动态选择使用 TEXT/HTML 格式, 或者两者都选
动态输入SMTP 相关信息
支持是否使用 SSL 
支持三种验证方法 

附注: 
暂不支持附件功能, 主要原因为服务端与客户端的限制.
服务端脚本不允许直接读取客户端文件.

目录:
1. 主内容: 两个主函数及完整应用代码
2. 预览:

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

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

2. 预览:

ASP 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验证选项: 邮件发送选项:


back

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

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

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