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

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

编辑:说三道四文库 发布时间:2017-02-24 12:46
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 指向图片所在主机
数据浏览部件的应用及编程-Delphi资料 数据文件路径的管理-Delphi资料 随意控制DBGrid每一行的颜色-Delphi资料 通过DELPHI实现JAVA调用ORACLE数据库数据 通过编写代码来设置数据库的别名-Delphi资料 为Delphi数据表格增加彩色 为Delphi提供Pack和Undelete功能 为Delphi中数据库报表加网格 为数据库报表加网格-Delphi资料 为数据库建立索引-Delphi资料 掀开SQL Server 7.0的面纱-Delphi资料 限制数据库记录数-Delphi资料 向数据库发送密码-Delphi资料 一个关于字符串的小问题-Delphi资料 用 QuickReport for Delphi 制作报表 用Delphi 开发数据库程序经验三则 用Delphi 实 现 不 同 数 据 库 系 统 之 间 的 数 据 转 移 用DELPHI本身的控件输出TABLE表数据 用Delphi编程访问SQLServer数据库 用delphi编写医院的复杂报表 用Delphi程序维护Paradox 数据表的索引 用Delphi的InterBase数据库开发C&S应用程序 用Delphi进行数据库之间转换 用Delphi开发“瘦”单机数据库应用系统 用Delphi如何实现VFP中的Cache特性 用Delphi设计数据库应用的几点体会 在我们日常工作中,常会碰到这样一个难题:一大堆-Delphi资料 用DELPHI制作应用软件 用Dephi 程 序 维 护Paradox 数 据 表 的 索 引-Delphi资料 用Dephi程序维护Paradox数据表的索引-Delphi资料 用InstallShield制作数据库应用系统的安装程序-Delphi资料 支持ASP、PHP高迅特价主机:(推荐)dtp.51.net 套接字问题再次提问 C#参考文档要的举手啊! 怎样做服务程序? (在系统后台运行) TComboBox的text能否设为只读? 站点属性中“应用程序保护”有三个选项,分别是---低,中,高。有什么区别吗?安全性有什么不同?为什么有的isapi程序必须设置成低才能正确执行啊? 怎样才能使Web页上的ACTIVEX控件自动下载注册? ADO 与 DATA MODUAL 怎样判断一个文本文件中的数据。 绝对的诚意邀请高手加盟 请问邮件服务器,如何用java实现,最好有源代码,谢谢了,急 急贴:>>>>>>>>>>>>>>>>>>>>>>>>>>这里有英语好的网络专家吗? 关于java中的画矩形 哪里有将股票数据转换成数据库格式的工具? 从哪里能找到用opengl绘制三维图形的源码?基于unix下的。 asp 怎么判断客户端的操作系统还有屏幕大小什么的? 卡在了一个错误里出不来,求救! 谁知道??????求救~~~~用asp操作注册表,从注册表中删除指定的主键! 何处能找到用opengl绘制三维图形的源码?基于unix下的 谁有多种字符窜转换的方法或代码呀? 用JBuilder5做的数据库应用程序怎么打包? 我的机器上没有装outlook,当我点击mailto时,就直接链接到hotmail的邮箱,怎么回事那 请问我在一个窗体里拖动了十几个ADODC控件,启动时很慢请问我该怎么样 怎样调整图片适应"picturebox"大小 请问那位大哥有求切线的C程序。 关于赵薇着装的讨论可以停止了 怎样远程连接安装在Linux 上的Mysql数据库? 谁能帮我解压缩从huizen.dds.nl/~roalt/h263.html下载的 H263软件 真诚的希望你加入振兴软件产业的 事业中来 两个函数之间变量可以共享吗 拷贝ACCESS 库 请教高手(关于数据结构)的一个问题 关于Rundll32.exe程序的问题 播放AVI动画的问题 c#和asp.net有什么关系? 串口打不开怎么办? 请问各位大虾,怎样在java里打开一个IE窗口。 网络问题! 我的浏览器怎么了? 在局域网中,如何在代理服务上作手脚,使处同一局域网某些人可以上网,某些人不能上网。各位帮忙! 如何制作安装盘,我的做好了,为什么到别的机器上安装不能运行 急急急·高手帮忙,在Java中引用C++的动态链接库,中文字符串参数变成乱码,怎么办? 有前锁问题 找个扫雷源程序! 发送邮件时,对现在大部网站要求的smtp认证,如何处理?急用! 连接的ACESS数据库可以是EXCEL的链接表吗? 神呀救救我吧? 谁知道哪有Delphi写的代理服务器源代码? 关于MFC的动态生成对象的问题 有谁把平台转向XP了,不知在这种新环境下开发出的软件在别的机器上会不会有问题(包括运行库及打包) 帮帮我,好吗?(谢谢大家了) 机械加工零件怎么估价,就是拿到一份零件图纸,要怎么知道是用哪种加工工艺,需要加工多少时间? 彩虹有几种颜色7 某工厂有一捆粗细均匀的裸铝导线,质量为108kg,横截面积为5mm2,这段导线长 m 铝的密度2700Kg/m3 机械加工工艺基础1.车削加工中粗加工切削用量选择的原则.2.被加工零件为有色金属材料,加工方案有两种:一、钻—扩-粗铰 二、钻-粗镗-粗磨哪个方案合理可行,为什么?3.试对零件结构设计 类似于粗糙度仪,粗糙度计,粗糙度测量仪,粗糙度测试仪这样的产品在南京什么公司有销售的 铜导线、铝导线用什么性质区分?初三第一学期 机械加工工艺应注意什么? 空气负离子浓度测试仪在青岛有销售的吗 数控车锥度怎么算20大头30度角怎么算小头15的长度最好给个算法谢谢了谁能直接给用上面数字算出来 万能外圆磨床精度要求请问万能外圆磨床大修后的国家精度要求是多少?还有就是,现在磨床出现磨300mm长的产品出现误差达到0.01mm.从复精度误差精度比较大?请问这是哪里出的问题?因该如何处 电镀镍表面未电镀完全我想问一下,电镀镍的时候,样品表面经过了多次除油等表面处理,可是电镀过程中出现跟地图一样的,只有少数地方电镀上了,经过好几个小时了,其他的地方才逐渐电镀上. 某机械厂要铸造100个铁质的机件,铸造该机件的木模用的木料的密度为0.7g/cm3,每只木模质量是4.2kg,求所铸造的这100个机件的总质量 万能外圆磨床和普通外圆磨床的区别有哪些? 请问电镀镍的时候,电镀时间比标准时间缩短,而电流变大,会对产品有什么影响?电镀厚度,是否会有差异,外观和性能会不会有影响? 苯检测仪,VOC检测仪在青岛有销售的吗 外圆磨床与无心外圆磨床的区别? 为什么在太阳下闭上眼,能看到各种颜色?睁开眼后为什么一切都瞬时变黑白色? 2、铸造铁质零件时,木模用密度为0.7g/cm的立方的樟木造成的,模型的质量是3.5kg,如果要铸造这样的零件100个,按120%下料,最少要多少千克水?(铁的质量:7.9g/cm的立方) 光盘反射层脱落怎么修补?我又一张重要的光盘,盘面没有丝毫划伤,但是光盘反射层又一小块脱落,所以导致无法正常读取,怎么修补?又反射涂层油漆可以涂吗? 将以光碟放在阳光下,有何发现?描述你所观察到的现象. 测量仪器和网络测试仪分别有哪些品牌,他们属于哪个国家的,有何特点与优势,国内哪些代理商在代理?帮帮 光盘的反射层有害吗 CNC加工中心主要能做那些模具?做零件的是那种? 泄漏电流测试仪等测量仪器 每一台都要拿去 做检测报告吗?如题,像我们公司的产品电热毯等,只要拿样品做检测报告就行了.我们供应商的这种泄漏电流测试仪 每一台都要有单独的检测报告的 管道2级探伤【X光探伤】那些缺陷不合格 内径 粗糙度测量我公司一个产品 直径在Ø 8.纵深为40mm .RZ 2.4..想在不切割的情况下测量它的粗糙度,请大家推荐下仪器.. 由水反射出的彩虹颜色怎样排列的?最上面的是什么颜色?把镜子放在水中 一束光照在镜子上 放射出去的光 最上面的应该是什么色的? 为什么不可以用X光的底片来看用多层可以吗 粗糙度测量中都要测量哪些参数 阳光照在红纸上,会反射出什么颜色的光?如题 我老公是干x射线无损检测的,请问他不接触多久才能要孩子?如果不小有了孩子.请问至少他不接触射线多少天的孩子才能要.对孩子有什么影响? 硅片表面的粗糙度怎样测量 彩虹由哪几种颜色? 什么是点焊焊接?什么是电阻焊焊接?什么是激光焊接? 接触式和非接触式粗糙度测量的区别哪些地方有差异? 普车车内孔,图纸标数已知小径52,长度90,锥度8°,求大径的值径,计算方式怎么求的,急阿,有没有大神教教呢 粗糙度是否会影响焊接质量 为什么三棱镜会反射出彩虹老师给我们上课时弄的实验这是为什么啊 还有为什么看的明显的只有三个颜色——红、黄、紫我们是下午大概两三点时做的实验不要只会打一个啊 飞机设计师为减轻飞机的重力,将一钢制零件改为铝制零件,使其质量减少104kg,则所需铝的质量是( )(р钢=7.9*10³kg/m³,Р铝=2.7*10³kg/m³)A.35.5kg B.54kg C.104kg D.158kg 判断:物体的颜色是由他所反射光的颜色决定的( ) 彩虹与三棱镜彩虹是空气中的水珠折射出来的,相当于三棱镜,但空气中那么多水珠怎么只能形成一道彩虹?而且为什么彩虹是弯的?究竟多少水珠相当于一个三棱镜? 飞机设计师为减轻飞机的重力,将一个钢制零件改为铝制零件,使其质量减少104kg,则所需铝的质量是 kg.(ρ 苏州激光焊氩孤焊接加工 牛顿做三棱镜试验时把日光分为六色还是七色 飞机设计师为减轻飞机重力将一钢制零件改为铝制零件使其质量减少了104Kg求所需铝的质量是多少〔钢的密度7.8;铝的密度的2.7〕 为什么不同的物体反射不同的光?形成不同的颜色.跟物质本身的性质有关吗?跟那一种性质有关? 三棱镜和阳光怎么可以作出彩虹七色光也行 彩虹到底是反射多还是折射多啊 物体的颜色是由它所反射光的颜色决定的对不对 关于零件粗糙度测量仪器不同系统测出来的粗糙度值差异较大的疑问.我公司最近一批产品在客户处投诉密封孔粗糙度超差.我公司内部使用的是哈量的设备采用的应当是国标,测出来Rz 2 左右, 外园340毫米内园一头200毫米一头190毫米的内锥度轴承 光照在红色物体表面,反射光的颜色是什么色? 光学知识 彩虹 激光单狭缝的绕射条纹 肥皂泡的彩色条纹&光碟上的色彩分别是什么光学现象请分别注明它们所属的光学类别!我主要想知道 它们分别是什么光学 比如 几何光学 波动光学之类 彩虹是折射多一点还是反射多一点? 机械加工工艺中零件的几何误差都包括哪些? 为什么向着太阳吹肥皂泡会显出色彩?为什么有的时候天上会出现彩虹? 急~~~~~~~希望大家帮帮! 双列圆柱滚子轴承锥型NN3006K轴承的内孔锥度是多少度?分不多,给点就行了 寻汽车橡胶配件加工技术及设备 彩虹是什么颜色 为什么彩虹经过反射会成为弧形呢?为什么一定是弧形的呢?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn