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

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

编辑:说三道四文库 发布时间:2017-06-25 04:53
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 指向图片所在主机
Google Glass于4月15日在美对外开放购买,售价为1500美元 电脑上的网址怎么样复制到手机 创客天下——《Make》及Maker Faire创办人、O&amp;#039;Reilly Media创始人Dale Dougherty专访 《近匠》aGlass团队:透析眼控技术的价值 一周消息树:超级充电器来袭,30秒可为手机充满电 北森CTO张庆化:利用Spark实现数据驱动价值 大公网冯咀志:站内搜索系统的PowerLinux迁移实践 2014移动开发者必备的十大应用测试工具 前《连线》主编Chris Anderson:创客就要DIT UC多屏战略 推出电脑版和电视版浏览器 “全国云计算大数据创新项目评选”征集活动正式启动 【走近院士】李伯虎:云制造技术的应用及发展 一周热点: Twitter的下一代分布式数据库Manhattan 专访微软陆奇:大转型中最难的是文化的改变 【CTO俱乐部走进腾讯】问题征集进行中 颠覆移动营销世界的女王Yunha Kim为女性CEO正名 Google揭露“仙女座”虚拟网络,及分散和集中架构之辩 DHTMLX Touch:开源的HTML5和JavaScript框架 Supercell下一城:《海岛奇兵》续写芬兰手游传奇 开发者盛宴 2014 Unity亚洲开发者大会盛大开幕 微软全球中国云业务总经理:云落地中国的最大难题 PTVS 2.1 Beta版发布 Visual Studio的Python工具 【走近院士】李兰娟:云计算与大数据将成为医疗改革利器 迭代不等于学习,聚类分析也不等于机器学习 Office大肆杀戮,已攻下Chrome Web Store Bug都补好了?Google发布Android 4.4.3更新 微软被传收购Xamarin 强势推进移动新战略 挑战传统金融业务 Facebook进军移动支付领域 亚马逊AWS需解决的五项问题 腾讯自曝:大数据平台的秘密 继Cloudera之后,MapR宣布对Spark的完全支持 请教 请问JDBC 中classes12.jar、classes12_g.jar、classes12dms.jar这三者有什么区别? 给小弟一个启示 寻电子商务领域合作-购买源码或合作开发 水晶报表显示时如何让它不出现toolTip提示信息? 开发Struts程序遇上的问题 如何启动Tomcat?? 在access中怎样给一个日期型的字段附空值???(在线等待) 快毕业了,我的烦恼?!!! 如何保存页面,一项一项粘贴他妈的太烦了! 在IE下执行servlet时为什么有些servlet可以正常运行,有些却提示下载文件? 如何把两个关联的DataTable 合并成一个DataTable 或者DataView 象数据库中的视图 在asp调用access数据库时出现错误( 在线等待) InstallShield Developer 7.0 East Language Pack 的问题!!! *****寻求好的Global.asa(在线等待)******* 大家快过来看看这个小程序!送分!来者有分! 学完操作系统的,将来能作什么工作呢? Insert一幅图片到Oracle数据库及从数据库中取出这幅图片的方法及代码(1) 如何将文本框设置成只读的,帮帮忙了!在线等待! MSXML如何使用,能否给一个较详细的例子 一阵风 屏蔽控件某个事件 使用MicroSoft DTSPackage Object Library开发的问题 逃离爱情 [原创] 如何动态使用web service 自动递增的字段数据类型,是否应该设置成number? 寻电子商务领域合作-购买源码或合作开发 讨论:如何用WinSock API 的异步选择模型(WSAAsyncSelect模型)构建一个多连接的服务器? 如何删除一个服务,如:OracleOraHome81TNSListeneroral;谢谢!!! 请问各位软件是如何控制硬件的? 如何判断输入的字符串长度? 能否以命令方式启动win2000 请问如何判断字符串中的字符在a~z之间 如何在jsp调用windows下的程序执行.就是IE当shell.(有点像黑客:) 不是用来干坏事 高手呀,能告诉我怎么把OLE drag&drop过程中的图元格式改成增强图元格式? 哪位有http下载的源程序(或下载地址),C++的。。。 哪位大侠有制作均衡器的资料和代码,是否有相关控件?在线急等,先谢谢了 dbgrid焦点问题。 如何识别客户端浏览器是不是腾讯浏览器? 怎么样得到上个月最后一天的天数 关于图片显示的问题? 一个应该很简单的问题!散分了! sybase12安装后sybase server启动不起来,服务启动没有问题 请问oracle JDBC 中classes12.jar、classes12_g.jar、classes12dms.jar这三者有什么区别? ( 召唤HTML编辑控件(ActiveX) 为什么没有遍历所有文件和目录?哪位可以帮忙调试一下。 请问如何再java里面执行oracle数据库指令如;exp,imp等等 高分求助!关于触发器。来者有分!在线等待! 工作累了﹖沒有精神﹖來我這里喝一杯吧﹐ Ghost2001如何备份win2000系统 工作累了﹖沒有精神﹖來我這里喝一杯吧 晚上紫外线强度大吗?与白天比怎么样 省内寄信邮费问题1 广东省内寄信,跨市,邮费需要多少?2 信里就两张复印纸,A4的那种,是通过放进邮筒寄出去的, 谁知道非谓语动词的英文定义啊? 英语主动改被动你不可以在课堂上大声讲话.翻译.改被动 寄信邮资问题我现在人在温州市鹿城区,现在要寄一堆信出去,分别寄到以下几个地方:温州市永嘉县瓯北镇温州市永嘉县上塘镇温州市苍南县灵溪镇温州市乐清市柳市镇温州市乐清市乐成镇 英语对话 What qualities do you value most in a young person?And why?是要编一个英语对话 主题是关于What qualities do you value most in a young person?And why? 英语,主动改被动 This is the Postfix program at host mail.zhiyin.com.cn.是帮我把他给翻译成汉字啊 谁给我一些关于保护环境的英语范文, 求英语作文80词左右,关于环境保护或者关注灾难 关于英语主动变被动的小问题.They have to built many houses since last year.变为被动后:Houses have to been built since last year.这么变对么?be 为什么要改为 been?没有be 变成 been 关于旅游时保护环境英语作文不随地吐痰,不乱写乱画之类的 德语von wegen的意思如题von wegen, Toni wird es schon richten! 英语主动变被动I saw him playing football at that moment. 如何变被动 在动词后加er变职业的单词越多越好 Ich mag Deutschland von mein Herz 德语 【英语】被动变主动Rice is grown in the northeast of China.变主动 what is healthy food什么是健康食品,定义. 德语翻译:Es regnet in meinem Herz 德语中的uber von bei的区别德语中的uber von bei好像都有“关于”的意思.究竟怎么区分?举几个简单例子~ 怎样回答:What food do you think is the healthy food and what foood do you think is un healthy? 没有大学文凭,想考英语证书!然后找个工作,怎么办?现在没有文凭无法生存啊, 德语这个句子里的von什么意思Es ist Tennisspieler von Beruf.这个von是什么意思,求理解 在形容词后面的从句叫什么从句 请教德语的介词aus和von德语中aus和von都表示“从……来”,感觉区别主要靠习惯.比如人从哪个城市来是用aus,但车从哪个城市来是用von.我想问以下几种情况应该用哪一个:(1)kommen___Essen.(2)kommen 德语unter/mit/bei Wirkung von ...用unter/mit/bei 有什么区别啊?举个例子? be动词后面要接宾格还是主格?连词呢?讲清楚点,如果be动词后用宾格,那为什么Am I cool?是主格? 关于介词aus和vonWoher nimmt die Mutter das Tuch?+ Vom Tisch oder aus dem Kleiderschrank.这里从桌子上拿用von dem 而从衣橱里就要用aus了呢? 请问有哪个非谓语动词 英语中,动词过去式后应该接什么人称代词?主格还是宾格? 现在寄信邮费怎么算?我听说是本地八毛,外地一块二.那是不是我从北京寄到天津和寄到新疆都是一块二?重量有限制吗? 非谓语动词具体有哪些? 如何判断if引导的是条件状语从句或宾语从句方法 寄信 邮资 现在寄信的邮费是怎么算的?尤其是外省的~ It is the first American movie of this kind ( )I've seen.A.which B.what C.that D.when 英语翻译大哥大姐,中英文最好都要,*(选其中的一个也可以哦)* It is the best film ___this yearA which I have seen B I have seen我选A 但是不对 为什么选B啊?什么时候加which 这样的词 什么时候不加 望高手详解 英语翻译You can't wash this dress;you must dry-clean it.He is going to give a lecture on how to learn English tomorrow. vor allem 最近看文章经常看到这个词另外,immer+比较级有没有代替形式,因为听人说过,但是没记下来.说是immer那个形式现在用的相对比较少了. 初一英语演讲稿范文 英语翻译1.他每周三学习英语 2.他昨晚睡觉前喝了一杯水 3.汤姆去年得到了他的驾驶执照 4.工人们建造了一些楼房 5.我们可以按时完成作业 6.学生们必须解决自己的问题 7.老师让我遵守校规 8 在都是if时.如何区分宾语从句和条件状语从句 this is the best film i 【】 顺便把相关结构句型说一下谢谢了this is the best film i 【 】 since last year a.saw b.see c.have seen d.had seen 顺便把相关结构句型说一下谢谢了 被动 还有 主动英语应该怎样翻译? 名词从句讲解that和what怎么区分,谁能帮我懂得来讲讲名词从句的语法知识或其它从句的知识 急求初一英语比赛演讲稿范文 英语翻译1many terrible pollutes the room2\ people love Disneglard3\ many children like Mickey mouse4\the Amricans speak English5\ALL of us like her6\Liping often rides a bike have 后面加be动词的什么形式?是宾格还是什么 英语的主动变被动They build houses every year.变成被动后:Houses are built every year.这样变对吗?句子末尾的时间直接落下来吗? 英语翻译我长大以后,就不再被老爸揍了.我有点儿累了,我现在不想被任何人打扰. 宾格后加动词吗动词后加宾格吗? 英语试题,帮做下,I was ___A__in a small countryside in China.A.brought up B.bring upC.raised up D.raise upThese students have little _C___for how others look at them.A.thinking B.thoughtC.concern D.considerationThere is a ____of two hours with apple汉语是什么?apple的汉语是什么? He dreams about everything.句子结构分析 求英语作文:the moment i was prised by my.(填一个词)急啊.who prised you?when and why were you prised?how did you feel?what did you think of that moment?只要把问题回答出来就行了,不要太难了, 防震减灾作文 翻译 我对学习英语感到兴奋地 用到get excited about something 给我写英语作文..The most unforgetable moment..60字左右..标题及中心:The most unforgetable moment 围绕..2008年5月19日下午2:28分到2:31分的默哀那个时刻..写一篇60字左右的文章.... 非谓语动词是什么意思? whether/if引导的宾语从句
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘