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

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

编辑:说三道四文库 发布时间:2017-05-24 01:05
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 指向图片所在主机
Oracle出新提案:Java正逼近iOS? TIOBE 2013年3月编程语言排行榜:厚积薄发 Ruby反超Perl 清华大学开源镜像站将被关闭 发表公开信 前Google资深研究员赵勇回国创业 专注计算机视觉/模式识别 开发者福音,微软开源Kinect源代码 日本很积极:富士通和NEC确认将推Tizen设备 10大支持移动“触摸操作”的JavaScript框架推荐 数据科学家的争夺及美分析学专业研究生院的建立 从开放走向封闭 Netflix宣布停止发布API key 《植物大战僵尸》神秘续作:可能是一款横版游戏 高性价比:GlassUp宣布支持Windows Phone系统 未挖掘到足够信息:非收集数据少,是利用率只有1% 下一个帝国:谷歌收购初创公司DNNresearch 苹果更新Apple Store应用,可查看零售店库存 开源软硬件:福特汽车的OpenXC计划 Temple Run:Oz稳坐付费榜头把交椅,迪士尼名利双收 Facebook开放图谱示好开发者 新增书籍电影等九项操作 源代码管理的六大视觉模式 最新算法面世 可提高云数据库性能 分析称平板电脑应用将占全球应用经济的35% 三大运营商对微信等OTT业务摊牌 Runscope联合创始人John Sheehan:API已死,API永存! IBM在京发布大数据白皮书 提出五项关键建议 Twitter开源Parquet 将支持Impala加速实时查询 使用Go代替Ruby,将服务器数量从30降到2 初创公司SwiftStack:“放在盒子里的S3” 赫尔辛基:全球移动游戏开发者的“黄埔军校” 不只属于三星!uMoove将发布“眼球追踪”SDK Android掌门人Andy Rubin宣布辞职 Chrome主管接任 openSUSE 12.3发布 弃MySQL拥抱MariaDB Meteor:让实时Web App成为主流 发布的问题 见很多网站上都将浏览器的右边的滚动条变了颜色,是怎样做出来的? 我用Delphi在本地建立了一个专用消息队列,但不知道该如何创建一个消息并将它发送到 关于动态窗体的问题 我要怎样实现在bbs中的,图片和文字同时上传到服务器?谢谢! dxDBGrid在Customer AutoFilter 对于字符串有无包含的功能,就象sql语句中的like功能? 谁帮我解决满分相送,关于统计图表的问题 请教各位,奇怪的问题 求版主别删除!尊敬的大侠:您好!我将要去应聘机房管理和维护,网络、网站、网页制作、管理、维护人员。他们可能会问什么问题(技术,非 请教一道SCJP的考题,谢谢。 有谁能帮我啊?救命啊! Delphi运行的时候,怎样用一个已经弄的的TForm作为模版,新创建的TForm对象可以继承它? 怎么让汉字和ASC字符同时显示? 一穷二白的程序员,我们该如何定位自己的人生目标,如何规划自己的职业生涯,如何快乐而充实的的渡过人生中的每一天!? 有没有办法,把窗体上的“关闭”去掉! 大家讨论: ICQ打开后, 会将屏幕 "硬" 是挤出一块来给自己放界面, 将其他程序 "压扁" 了, 看起来很霸道, 你认为是怎么做的呢? UP有分哟. 现我的Win2000是SP2,听说现己有SP3请问中文版的在那下载。 java连接DB2数据库问题 我想在delphi里使用一个vc做的active dll,应该怎么做?我是新手,请各位大侠多多指教。 请问:treeview中怎样知道当前selected的是根节点? 小弟刚来,问一个大家必做的问题,请问怎么给别人送分啊? 高手请进(高分相送) 在dns里面不能添加主机纪录,提示访问被拒绝,回答满意就给分,看起来简单哦? 求助(关于网页制作) 在线急盼!!! 是不是星多的就是高手,星少的就是菜鸟? 使用PreparedStatement向表插入数据的时候,如果一个字段是自动增长的,应该怎么办呀??? 大侠们快看我的问题呀,焦急等待中。。。。。。。 在职软件工程硕士是如何培养的?课程设置如何?回答必有分! bcb6 update2 已经出来啦,有谁知道那里有下,麻烦告诉一声! 会javascript的可以进来看看。移动层的问题。帮我看看哪出了问题? 一个菜单新手问题.请大侠帮忙. 关于如何调用vc编辑器 关于调用EJB的问题,高手请帮帮忙~~~~~ 自动跳转页面问题 installshield 打包完成,安装时候报不能注册某个文件,怎么解决,原因是啥? 请问日期问题 各位朋友,有劳了,150台2K PRO加入到域的问题 如何让文件的默认安全为指定的用户或组? 请问各位高手能不能把一个数据窗中的所有数,一起置为0! 告急,关于c语言一个程序 谁帮我解决满分相送,关于统计图表的问题 Linux做的FTP服务器,流量大会彻底死机吗? 一个关于数据库查找的问题 救急!!应用程序执行时报错:在 0007:00003c0b 的模块 USER.EXE 中导致无效页错误 More Exceptional C++ 中文版(lostmouse译,肖翔审校)即将出版,敬请关注!(这里提供译序、目录、序和前言) 如何在tomcat(jakarta-tomcat-4.0.1)下配置Orcale数据源 关于计算字段的右对问题 页面跳转问题!!!急呀急呀急!! 弱智问题,请问怎么给别人送分? 写二进制文件到注册表只能写类似Chr$(&H1) + Chr$(&H2) + Chr$(&H3) + Chr$(&H4)如何写以下文件? 求男主是皇帝的穿越文!一定要穿越!不要小白!要架空的! 彩色的梦想 作文可写童年的梦想 可写未来的梦想 想象文记住是想象文 别太深奥 老人与海鸥原文 穿越文,女主自己勾引皇上,皇上帅不帅无所谓.女主不一定要喜欢皇上,年龄差距大也没关系 延边人民出版社 优秀生全新寒假作业本第42页第四 5.第六段与文题梦结束的地方是什么关系短文第六自然段与文题 “梦结束的地方”是什么关系,在文中起到的作用是..........你对这段文字 老人与海鸥的原文是什么 背影图 阅读第2~5自然段,回答下列的问题.①指出这件事情的要素.时间:地点:人物:事情起因:事情经过: 半截蜡烛 练习与测试厉声地____ 从容地____ 娇声地____ 镇定地__ 轻轻的____ 默默地__ 中尉重新点燃蜡烛的原因是__________________________________________________________________________________________________ 关于中秋赏月的诗句有哪些(至少3句) 《背影》主要内容35字以内 练习与测试 半截蜡烛 苏教版厉声地____ 从容地____娇声地____ 镇定地__轻轻的____ 默默地__发展练习生日1、第一、二段中有三处暗示了此次生日的特殊,这三处是:__________________________________ 中秋赏月我会说什么样的古诗 由孔子游春联想到什么要成语 朱自清的散文《背影》的课后习题到南京时,有朋友约去游逛,勾留了一日;第二日上午便须渡江到浦口,下午上车北去.父亲因为事忙,本已说定不送我,叫旅馆里一个熟识的茶房陪我同去.他再三 2010年有什么天文现象?具体时间和什么现象,thank you! 你爱的人跟你说你是不是在利用我,你会怎么样? 急死啦.跪求朱自清的背影里的习题我那时真是聪明过分.一句中,聪明的意思是什么? 中国政治传统的特点是什么?知道的帮个忙 克雷洛夫的寓意 近期有什么天文现象?比较难得一见的。 2010年有那些天文现象最好是各个月份的, 一个女孩写作文说她想要一个可爱的孩子和一个爱她的老公 老师写了一句评语是什 最新天文现象2010预计现象 2010年天文现象我是天文迷哟,麻烦说清楚点. 关于克雷洛夫克雷洛夫在街上逛,他又黑又瘦,有两个青年说“飞来一团乌云”他回答: 请大家帮我找些余秋雨、史铁生、周国平的名人名言,要注明作者和出处(一定要注明),各20条就好了,补充下,要100字以内的,挺麻烦的,如果好的话我会追加悬赏的~ 2010有什么天文现象?什么答案都行 如果你爱的人对你说,我死了也不管你的事,你会怎么做? 余秋雨名言就是讲父母缔造了我们,但却未必会理解我们,但这就是人类的进化什么的? 2009年和2010年有什么天文现象吗? 女人说爱上她会很痛苦是什么意思?她还说了,她做了现在很后悔的事,还说要重新开心起来,说自己已经死了 负荆请罪这编课文讲的是什么 =《星》 巴金中以星为题有什么深刻含义?30分钟以内!《星》 巴金 在一本比利时短篇小说集里,我无意间见到这样的句子:“星星,美丽的星星,你们是滚在无边的空间中,我也一样,我了解你们… 特工皇妃:皇上我要废了你中的男主角是谁啊?是云弑天还是稼轩墨炎啊? 咽反射、角膜反射、瞳孔反射介绍? 巴金文章"星"中以 星 为题有什么深刻含义 特工皇妃皇上我要废了你 君落羽和云弑天的那本落羽的身世究竟是什么?为什么稼轩墨炎父亲一定要让他和落羽一起?谁给我讲讲?我虽然看的没剩多少了,但是好紧张啊! 眼角膜是不是指黑眼珠的部分? 巴金的《月》中,作者一再写“冷”“死”有什么深刻的含义? 云弑天,君落羽,谁给个简介,在《皇上我要废了你》里的 自己拿着一面镜子,注视着自己的瞳孔(就是黑眼珠中央的深色眼仁),让自己父母打开手电筒从侧面照射自己的眼睛,你会从镜子中看到自己的瞳孔有什么变化? 巴金的《星》中第七题:“这应该是浇灌灵魂的春雨罢.”这句话中的“这”是指______,这句话的深层含义_ 皇上我要废了你的结局,君落雨到底跟谁了?云弑天死没死? 有关中秋赏月的诗句 为什么说卢沟桥是具有历史意义的建筑 特工皇妃皇上我要废了你 君落羽和云弑天的那本 .云弑天自称什么 .就是类似孤什么的 . 中秋赏月诗要整首的啊 卢沟桥是谁建造? 迟子建散文读后感网上的不要 2008年在华南(广东)能看到的天文现象 为什么要建造卢沟桥 初中半命题作文大全有些什么题目? 关于中秋赏月的诗歌 卢沟桥最初的建造者是谁?就像赵州桥的建造者是李春一样,很想知道卢沟桥的建造者是谁. 背影课后题第四题在线等,写具体点,三百字以上,救命啊 文章《梦结束的地方》第六自然段与文题“梦结束的地方”是()关系 改转述句:父亲接着说:“当你们得知是我的眼睛角膜起了作用,你们会为我自豪!” 求穿越文,男主是皇上.男主要是皇上或王爷.女主是穿越来的,聪明,受宠.太后要疼女主.可以np,但是结局要一对一.不要虐.***一定要完结,不要有VIP.再次声明 不要有VIP! 不要未完 写自然之梦的作文我有急用!面队越来越恶劣的自然环境,你一定会盼着有所改变,请将你的想法写出来. 父亲接着说:“当你们得知是我的眼睛角膜起了作用,你们会为我感到自豪!”改为转述句是什么?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘