说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在ASP中,如何把一个页面发Email给对方

编辑:说三道四文库 发布时间:2017-03-28 06:22
HTML文档下载 WORD文档下载 PDF文档下载
rt
如何在网页中实现自动发送电子邮件功能

邮件列表(mailing list)是电子邮件的扩展应用之一,被广泛应用于用户的跟踪服务,发布产品信息,以及电子报刊等方面。用户可以向相应的邮件服务器发送一份订阅申请邮件,这样该用户就被加入到该邮件发送的列表中。其过程是:用户填写相关申请订阅信息,系统根据用户提供的邮箱地址发送一封确认邮件,并要求用户打开自己的邮箱,点击邮件相关确认部份将其的确认信息发送给网站的Webmaster,Webmaster在得到确认信息后向用户开通相关的服务。那么这种自动发送邮件的功能是怎样实现的,我们怎样在自己网站中实现该功能呢?下面将对此实现方法进行阐述。
软件厂商提供了方便、简易、与服务器无关且稳固的方法,使我们可以在页面上用一些ASP组件直接发送邮件。如:Microsoft提供的CDONTS及第三方组件Jmail、ASPFreeMail,FastMail,ASPEmail,ASPQEmail等。
1.CDONTS(collaboration Data Object for NT Server)
CDONTS与ADO类似,它们为用户提供了用任何程序和脚本语言访问操作系统复杂和稳固的功能集合的能力。编程人员通过以ActiveX封装Windows的本地消息服务来收发电子邮件。Windows2000中会默认安装SMTP服务,Windows NT中可用Windows NT4.0 option pack 4安装SMTP服务。安装后CDONTS.DLL存放在C:\Winnt\System32\目录下面。有了该组件我们还不能立即应用它,在对它进行使用之前我们必须先完成组件的注册,我们可以在MS-DOS方式下进入到CDONTS.DLL所在的目录C:\Winnt\System32\下输入:
  c:\winnt\system32>regsvr32  cdonts.dll
(如果我们想将其御载可用指令: c:\winnt\system32>regsvr32/u cdonts.dll)
通过CDONTS发送电子邮件非常方便,仅需创建一个邮件对象并设置其几个相关属性便可实现。基本过程如下:
<%‘创建一个邮件对象
set NewMailObj=CreatObject(“CDONTS.NewMail”) 
  NewMailObj.from=“源地址(发件人名)”
  NewMailObj.To=“目标地址(收件人名)”
  NewMailObj.Subject=”标题”
  NewMailObj.Body=“邮件内容”
  NewMailObj.AttachFile “filename”,"附件名"
设置优先级,0-不重要,1-一般,2-重要
  NewMailObj.Importance=2
  NewMailObj.Cc=”抄送地址”
NewMailObj.BCc=”密送地址”
NewMailObj.send  ‘邮件发送
  Set NewMailObj=Nothing  ‘释放对象实例
%>
下面以网络杂志订阅系统的订阅申请及确认实现部分为例具体说明怎样用CDONTS对象实现自动发送邮件的功能。
运行环境:Windows NT 4.0,Windows option pack 4,IE 5.0,OutlookExpress
文件名:Order.asp
功能:提交订阅内容
<html>
<head>
<title>选择杂志</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<form name="form1" action="SendMail.asp" method="post">
  <table name=table1 width="39%" bgcolor="#99CCFF">
    <tr><td colspan="2" height="19"> 
        <div align="left">您的姓名: 
          <input type="text" name="FUserName">
        </div>
      </td></tr>
    <tr><td colspan="2" height="25"> 
        <div align="left">您的E-mail地址: 
          <input type="text" name="FUserMail">
        </div>
</td></tr>
    <tr><td colspan="2">请选择杂志: </td>
    </tr>
    <tr><td width="54%" height="25"> 
        <input type="checkbox" name="News" value="时事新闻 ">
        时事新闻 </td>
      <td width="46%" height="25"> 
        <input type="checkbox" name="Hardware" value="硬件新品 ">
        硬件新品 </td></tr>
    <tr><td width="54%" height="25"> 
        <input type="checkbox" name="Software" value="软件动态 ">
        软件动态 </td>
      <td width="46%" height="25"> 
        <input type="checkbox" name="English" value="每日英语">
        每日英语</td></tr>
  </table>
<input type="submit" name="Submit" value="提交">
<input type="reset" name="reset" value="复位">
</form>
</body>
</html>
运行后显示如下:
 
文件名:SendMail.asp
功能:产生用户个性化邮件并发给用户
因为要用到CDONTS常量,而CDONTS常量的声明放在CDONTS.INC中,因此在程序开头要说明使用包含文件cdont.inc。
<!--include file="cdonts.inc"--> 
<%@ Language=VbScript %>
<%Dim Susrmail,Snews,Shardware,Ssoftware,Senglish
  SusrName=request.form("FUserName")
  Susrmail=request.form("FUserMail")
  Snews=request.form("News")
  Shardware=request.form("Hardware")
  Ssoftware=request.form("Software")
  Senglish=request.form("English")
Sub SendUserMail(UserName,UserMail,MasterMail)
  Dim NewMailObj,MailBody
  Set NewMailObj=Server.CreateObject("CDONTS.NewMail")
  NewMailObj.From=MasterMail
  NewMailObj.To=UserMail
  NewMailObj.Subject="确认信息" 
  'MailFormat置为CdoMailFormatMime,正文格式为HTML 
  NewMailObj.MailFormat=CdoMailFormatMime
  MailBody=UserName&"先生(女士)您好:"&VbNewline&"    您已填写并提交网络杂志订阅登记表," 
  MailBody=mailBody&"您所订阅的杂志有:"&VbNewline&Snews&Shardware&Ssoftware&Senglish
  MailBody=mailbody&VbNewline&"收到本邮件后请单击以下链接完成确认"&VbNewline
  MailBody=mailbody&http://myweb.dott.com/cgi-bin/confirm?Susremail=UserMail&Usrid=jeudf3844
 ‘在这里Usrid代表用户标志,应由服务器端的ASP程序生成,此处简化了生成过程
  MailBody=mailbody&VbNewline&"系统管理员会尽快开通您的网络杂志服务功能"&VbNewline&"谢谢您的订阅" 
  NewMailObj.Body=mailBody
  NewMailObj.send
  Set NewMailBody=Nothing 
 End sub%>
<%SenduserMail SusrName,Susrmail,"TcpIpBoy@263.com"%>
确认邮件已送出!请打开您的邮箱<%=Susrmail%>"以确认  用户收到的邮件内容如下:
 
用户点击确认链接后会向服务器端处理程序Confirm.asp递送用户的标识字(Usrid)邮箱地址(Susrmail),供Confirm.asp将该用户加入到杂志邮件发送列表数据库中(程序略),从而实现杂志邮件的自动发送。

名称
 功能
 格式
 
Attach
 添加附件
 Sub AttachFile(Source, [FileName], [EncodingMethod])
 
AttachURL
 以URL格式添加附加和数据
 Sub AttachURL(Source,ContentLocation,

[ContentBase], [EncodingMethod])
 
BCC
 以“,”分隔的BCC接收者列表(暗送)
 字符串类型属性
 
Body
 Text或者HTML格式的邮件正文
 字符串类型属性
 
body format
 邮件正文格式
 0:表示HTMl格式,1:表示Text格式
 
CC
 以“,”分隔的CC接收者列表(抄送)
 字符串类型属性
 
ContentBase
 带有URL附件的邮件中正文采用的URL基地址
 字符串类型属性
 
ContentLocation
 带有URL附件的邮件中正文采用的URL 
 字符串类型属性
 
From
 邮件发送方地址
 字符串类型属性
 
Importance
 邮件级别
 0: 普通 1:机密 2:绝密
 
Send
 发送邮件
 Sub Send([From], [To], [Subject], [Body], [Importance])

各个参数可以参考上下文属性
 
SetLocaleIDs
 设置新消息的代码页标识
 Sub SetLocaleIDs(CodePageID As Long)
 
Subject
 邮件主题
 字符串类型属性
 
To
 以“,”分隔的接收者地址列表
 字符串类型属性
 
Value
 任意的邮件头的值
 字符串类型属性
 
Version
 当前集合数据对象库(CDO)的版本号
 只读字符串类型属性
 

在使用有关对象的方法时,方括号参数可以省略。

下面是采用ASP使用的例子:

 Dim MailObject 

Set MailObject = Server.CreateObject("CDONTS.NewMail") 

MailObject.Send "发送方邮件地址","接收方邮件地址","主题","邮件正文" 

 发送附件时可以这样:    

Dim MailObject 

Set MailObject = Server.CreateObject("CDONTS.NewMail") 

Set MailObject = Server.CreateObject("CDONTS.NewMail") 

att_fileName="附件文件名完整路径" 

f_name="文件名" 

MailObject.From="在这填写发件人地址" 

MailObject.To="在这填写接收人地址" 

MailObject.Subject="填写主题" 

MailObject.Body="填写正文" 

MailObject.AttachFile att_file,f_name 

MailObject.Send
<!--#include file="conn.asp" -->
<HTML>
<HEAD>
<% 
if session("password1")<>"ok" then
Response.Redirect "adm.asp"
end if
%>
<META NAME="GENERATOR" Content="Microsoft FrontPage 4.0">

<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--

function window_onload() {
sendmail.mailsubject.focus();
}

//-->
</SCRIPT>
</HEAD>
<BODY LANGUAGE=javascript onload="return window_onload()">
<%
if Request.Form("mailsubject")<>empty then
mailsubject = Trim(Request.Form("mailsubject"))
mailbody = Trim(Request.Form("mailbody"))

Set objCDOMail = Server.CreateObject("CDONTS.NewMail")
objCDOMail.From = "xza@public.whptt.sd.cn"
objCDOMail.To="xiazhengan@163.com"
sql="select email from email"
set rs=conn.execute(sql)
Response.Write("正在邮件群发.................." )
do while not rs.eof 
objCDOMail.To = rs("email")
RS.MoveNext
Loop
rs.close
objCDOMail.Subject = mailsubject  
objCDOMail.Body = mailbody   
objCDOMail.Send
Set objCDOMail = Nothing

Response.Write "<p align=center>发送成功</p>"
Response.End
end if
%>
<form name="sendmail" action=SendEmail.asp method="post" ><br>
        <table border="1" cellspacing="1" cellpadding="4" width="562" align="center" style="WIDTH: 562px; HEIGHT: 405px">
          <tr > 
            <td height="30" colspan="2" align="middle"><b>发 送 邮 件</b></td>
          </tr>
         
          
          <tr> 
            <td height="25" width="20%">标题:</td>
            <td height="25" width="80%"> 
              <input name="mailsubject" size="50" 
     >
             </td>
          </tr>
          <tr> 
            <td height="25" width="20%">内容:</td>
            <td height="25" width="80%"><TEXTAREA style="WIDTH: 510px; HEIGHT: 278px" name=mailbody rows=16 cols=61></TEXTAREA>
             
            </td>
          </tr>
          <tr> 
            <td height="10" colspan="2" align="middle"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
              <input type="submit" name="Submit" value="发送">
             
            </td>
          </tr>
        </table>
      </form>


</BODY>
</HTML>
谢谢楼上的两位兄弟
我的意思是如何把上一个页面(重点,整个页面格式)发email到别人的邮箱
多界,多界
可以在outlook中编辑HTML,如果有图片,HTML 指向图片所在主机
扁平化设计会扼杀人们的创造力吗? 又一巨头涉足移动视频分享领域:传雅虎欲收购短视频应用Qwiki 史上最牛:主要靠三消游戏IPO King也许会是第一家 乐视超级电视预约启动 1小时预约近1.4万台 王坚:未来一年阿里云会有很大变化 梁胜:开源并不是做好软件的唯一方式 如何为IE 10编写特定的样式 MySQL手册许可证更改乃是Bug惹得祸 开源世界高峰论坛首批演讲议题公布 测试工程师的心灵鸡汤:谦虚、不沉默、有危机感、不断努力 高德地图API“沿图有你,晒出你的LBS应用”活动拉开帷幕! 谁能找出Windows 8.1的安全漏洞,就将获得微软10万美元奖金! 【直击美国云计算】Facebook分享数据中心新网络架构Fabric 【直击美国云计算】OCP发起产业界的Maker运动 红帽刘长春:开源是推动云计算和大数据发展的重要力量 【直击美国云计算】出货量达x86的20多倍 ARM或将成为数据中心主角 孙小群:将SAP HANA打造为开放的PaaS平台 GitHub推出重大改进:强调速度、内容和交互性 如何打造测试工程师精英团队? 如何做个有“钱”途的测试工程师? 苹果开始关注企业移动化 iOS 7的10大办公功能 “开源群英会2013” 参会名单(持续更新中) 微软Builder2013前瞻 主打跨平台工具及服务 CMDN 29期:软件测试与管理之路 微软IE10与HIT FM 携手打造全新HTML5官网 专访GenMyModel CTO:一款全新在线建模工具背后的故事 【直击美国云计算】Jason Hoffman:数据和计算的融合将破坏全球利润 【直击美国云计算】如何做Hadoop、流处理框架等技术的采用选择 【直击美国云计算】细数云技术领域成王败寇:从SaaS到SDN 【直击美国云计算】谷歌Jeff Dean:成功的关键是专注 致远V5发布:强调大协同,企业移动化真来了 急!如何在VB中控制扫描仪,并按要求取得图象? 高手请指点 [给分]请global_boy(准备蒸发)进来领分!帮助解决Win2000启动选项的配置..原贴:http://www.csdn.net/expert/topic/592/592163.xml?temp= 请教高手!如何通过文件名获得其图标 MCSE?! 数据连接错误? 如何让datagrid绑定数据 ISAPI程序里输出的网页无法显示,大家救命! 请问如何在Jb6中使用中文字体,比如说宋体 HTTP 和 FTP 一个黑客问题? SQL 急的!谢谢大家帮忙!关于interbase与c++builder5的连接。 请教高手! 哪里有免费下载<thinking in c++>等图书的? 那位大侠懂在 VC 中用汇编??? 有会命名管道操作的高手吗 请教高手! 异步传送的问题? 如何杀死某个进程呢? 苦行僧与灌木丛来领分 如何把一个string转换成int delphi与Access ADO连接的详细设置? 请问能否用C#实现进程的完全隐藏? 创天中文VC6.0的问题????? 有谁知道类似WINDOWS98那个星空的屏保是如何实现的? 请各位大虾提供一些JAVA开发工具的下载网址 在Web Service中传递图像字段数据回客户端的问题!请教大侠! 买过深入浅出MFC的朋友请进~~~~~~ 会Java的究竟难不难找工作啊? 有什么方法可以让自己的机子有假的ip呢? root 是不是可以无限制看其他用户的文件? 高手看了吐血的问题(WinXP下无法执行.asp脚本) 这段代码错在那?? 我安装了一个winXp和win98,如何卸载win98阿,谢谢。 如何在picture控件里方便的画出坐标系,要完整的,要是一条一条画太麻烦了 在ASP中如何产生一个类似CLSID的,不会重复的值? flash5里如何制作填充渐变为任一色到透明色填充? 关于SESSION的问题 ado里怎么压缩access数据库 100分在线 谁发扬一下共享精神,借我看看背单词软件的源代码!!谢谢了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 急啊,有谁有读写客户端数据库的控件,希诺在吗 己经开发了一个sql server2000与ASP的系统,怎么把数据库移到别的机子上去运行! 关于quake 如何把同一内容,通过一个按钮,提交到不同的地方(仅用javascript或html) 请问谁有bea的jdbc driver for mssql的license 哪位朋友知道钱能的《C++程序设计题解》下载,小弟先谢了! 请问listview控件中怎样修改选定的iterm及subiterm? 图书馆管理系统,急!急!急!(pb8+sql2000) select一有变动,就将select的值传给textfield.如何实现? 学VC是不是同时看几本书啊? 观2012有感,新颖的题目. 英语作文:英国笔友想知道李华高三的学习和备考情况.李华回信内容: 1.来自老师的压力 2.来自同学英语作文:英国笔友想知道李华高三的学习和备考情况.李华回信内容:1.来自老师的压力 看感动中国有感的作文 读后感作文的题目 我要考托福,问下如果没有学过toefl的话,能考到多少分? 甲,乙练习打字,甲打字的速度是乙的1.2倍,同样打600个字,甲比乙少用1分钟,问甲每分钟打多少个字?急啊! 游记作文700字 如果只考托福不考Sat ,能进排名前100的大学吗,托福至少要达到多少分呢 图书分为三类,其中科普类和文艺类占7分之6,文艺类和卡通类占3分之2,每类书各占全部的多少. 游记作文800字广东省内游啊,不要太夸张 在成都考托福 托福分数达到80分好考吗?知道的请回答 作文:读《台阶》有感... 游记作文700字! 6只铅笔和5本日记本共花去1.35元,3只铅笔和2本笔记本同价钱,问1只铅笔多少钱? 这篇短文的读后感,曾听到一位老农讲了一个黄鼠狼脱皮哺子故事:三年困难时期,他一家人经常找不到吃的.好在他会下夹子,偶尔也会夹到狐狸、黄鼠狼什么的.一天清晨,他去收夹子,见夹到一 回家去问妈妈(毕淑敏)阅读、答案文章太长,打不下~去网上看看吧~1、当我游敦煌回来时,那些词表现了我激动的神情?从哪些词语中表现出妈妈和我相反的神情?这是什么写法?2、所有的妈妈 我要考托福,想问一下TOEFL考中短信答案可信吗? 速度给我一篇读后感作文要关于时间的要求400字 回家去问妈妈(毕淑敏) 阅读题 小明买了2本日记本和12枝铅笔共用了10.8元,2本日记本和6枝铅笔的价钱相等,那么一本日记和一枝铅笔价各多 考托福可以自己复习吗?可以不报新东方之类的班自己复习吗?大概每天应该花多长时间复习,总共需要几个月?只考过四、六级,成绩分别是624,621 考托福托福是什么?考了托福能干嘛? 童鞋们谁考托福了!我今年高一,考托福的前一个月还不知道托福是什么,然后一个月后就考了,68分怎么样啊ps,能上大概什么样的美国高中呢,我因为去年12月底才决定出国,结果比大家都晚了.托 自己准备考托福 应该怎样复习 准备? 想考托福有3个月的准备时间 平时成绩110左右吧 如果拼命努力的话托福大概考多少能不能至少达到80以上 英语作文 假设你是李梅,你的加拿大笔友Clark对中国的传统节日中秋节很感兴趣,请给他回信内容包括:1.中秋节是中国重要的节日之一2.中秋节,有些人会走亲访友相互祝福.3.中秋节晚上,一家 邻居餐桌上的谜底 1、文章写到第九自然段,作者已经明白了邻居餐桌上的谜底,第十自然段是否多余,可否删去,为什么 还有半年的时间考托福,怎样才能更好的去理解托福阅读文章呢? 观阅兵有感 作文题目不一定要是《观阅兵有感》,写有关于爱国的文章就行了,不要太长,500字左右.注意,是500字左右! 考托福需要复习多长时间? 请问我想2011年2月份考托福,应该在什么时候报名啊?我北京的 观09阅兵仪式有感的作文急 字数不要太多 像个初中生写的 不要太深奥 我的老师的作文结尾 写游记的作文600字要有意义,写春天的! 观看阅兵的感受 作文观看了国庆大阅兵后的感想 请问我打算考托福,大概需要多长的复习准备时间?我现在大三,英语水平一般,四级复习了下547,六级裸考是448.想考托福,目标是100.需要多长时间复习呢? 一篇优秀的游记作文(写事的)500-600字 观阅兵式有感的作文重点写感受 八年级作文《我的老师》,给个开头结尾!直接等! 观2011春晚有感500--600字左右的议论文,重点写其中的1、2个节目,反映了什么社会现象,有什么亮点.语言深刻、朴实,富有表现力.好的有加分.(文章多一个/少一个字扣五分)o()^))o 唉、1L的 父母对我的爱 (作文) 如果我2011年1月30号考托福,什么时候能拿到成绩? 关于猫妈妈和小猫当初我家的院子里有一只母猫生了3只小猫.然后我发现他们是在他们一个月左右,然后我就看太可爱了所以抓了两只猫回来,我想让他们保持野性,又让他们知道我们,所以三天 观2011春节联欢晚会有感是要2011年的,还要是中央台的,答好了另外加分! 父母对我的爱作文 猫妈妈不见小猫怎么办? 观09年春晚有感求一份09年春晚的作文 书面表达:假设你是李华,现在是一名高一的学生.请你给你的初中外籍英语老师Miss Evanc写一封信.(英语主要内容如下:1.简单介绍一下自己现在的情况;2.感谢老师在英语学习上给予你的帮 从现在开始准备SAT来得及吗..准备六月考2,暑假考托福,十月考1英语基础还是不错的 已经高二下了 两年后要考托福,现在有必要报托福班熟悉吗?想先了解清楚有针对性的训练 我现在只有一个月多天准备时间了,六级低分飞过,考托福80分怎么难吗?来电复习建议呗各位大神…… 关于考托福和sat的准备~我现在准备开学上高一,想去美国读大学,最迟想在高二上学期就考完然后申请学校。我知道难度可能有点大~初中英语基础比较好。想得到最详细的准备计划,现在是9 准备考托福,报名是个老大难的问题,大家推荐个托福代报吧希望是信誉好的,不要是什么骗子公司 山西有哪些名人 而且写一篇作文 600字的 急. 先准备SAT,再考托福可以吗? 春节游记作文800字别太远福州境内,不是境内最好农村的比较好改,最后一天了,拜托拜托!这个是高中的作文,水平起码也要初中水平 鱼为什么不吃食? 高中生想考托福和SAT要做什么准备?我今年初中才毕业,马上就要去军训,然后开始高中生活,我想高中毕业后去美国读本科,目标是世界百强的大学..我的英语一般,虽然从分数上看还不错,但是总 一篇游记的文章,800字.一篇写游记的文章,散文,抒情,意境,最好是春天的. 冬天鱼怎么不吃食
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘