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

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

编辑:说三道四文库 发布时间:2017-08-17 05:51
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 指向图片所在主机
iOS8.1.1越狱又惹急苹果!扒一扒黑客与苹果的斗争史! Firefox.html:用HTML重现Firefox UI Qt 5.4正式发布!引入WP,支持HTML5混合开发 2014智能硬件盘点第二弹!这次咱走暖心的 聚合数据资产,推动产业创新——2014中关村大数据日看大数据变现 拥抱开源:微软Windows 10宣布全面支持AllJoyn技术 改变App领域发展!友盟推“数据工场”战略,两款新品亮相 Cloudera正式登陆中国市场:与英特尔携手共助本土企业淘金大数据 Go 1.4正式发布 支持Android开发 【特别提醒】2014中国大数据技术大会门票全面告罄 不接受现场购票 累计4000万美元 Qualcomm在华投资5家公司 支持Android、WatchKit开发,全新RubyMotion 3面世! 快速开发移动医疗App!开源框架mHealhDroid 2014CVW﹒产业互联网大会解密未来20年 Nimble VR的收购与一封来自友商的感言 Google Earth API将在2015年12月彻底关闭 AR、美颜、机器人:计算机视觉库几乎无所不在 不激增,无爆收,年度最佳手游为80 Days带来了什么? 《近匠》机智云CEO黄灼:跨越智能硬件的“鸿沟” 智能手机≠智能家居!我们要的究竟是什么? 亚信大数据事业部总经理张灏:打通各行业数据壁垒 让大数据变现畅通无阻 Web App和Native App不是生死之争,而是可以和平共处! 微信之父张小龙说微信坚持“去中心化”,这样真的好吗? 亚信CFO武军谈进军海外市场成功经验 前瞻性思维是开路先峰 Swift,任重而道远! DevOps系统的变迁 玩转Docker镜像 “扫描建模”速建AR应用 Vuforia 4.0 SDK更新 硅谷里的外星人:纵观Reddit十年风雨路 不见不散 Cloud Foundry Meetup活动将首次走进杭州 独立开发者:新手做2D手游该用哪些工具? 如何防止多个程序实例同时运行? Interface not supported,Delphi作Com+服务时,有客户端报此错,紧急求助!! 难道《80X86汇编语言程序设计教程》保护模式部分的例子没人试过吗? Canvas.StretchDraw在WinMe有效,但在Win2000无效?!得如何解决? 本人急求《深度探索C++对象模型》一书完整E版 寻《深度探索C++对象模型》一书完整E版! 想从C++转到DELPHI,请前辈们指点一二 请问那里有.NET基类的详细介绍?提供者给分。 网页上的图片都是怎么切割的? 什么叫hr? 求教组网方案!有实践经验者请进 帮助看看用什么控件比较好。 OLE打开Excel文件的问题 关于c远程调用 这个病毒太狠了! 如何将IE打印功能去掉?禁止别人打印网页? 请教关于TImageList中存储多幅图片的问题 100分赠送 寻架构? 请教高手:如何在VB开发的程序中准确判断用户的可用内存? 用jb怎么在另一个类中控制frame中的一个label的text的实时的变化?多谢 如何制作PB应用程序的安装程序?高分求救。 WinXP里怎样备份norton antivirs的升级数据? 我只是给自己加点分啦 快救救我吧,我的存储过程返回值有问题?? 日文原码想在中文环境中运行可不可能 JBoss高手看过来! 下面的js执行错误,请看看 请教高手:如何当一个程序被反复调用时利用command$? 声明游标时可否用变量? 能不能提供几个漂亮的repeater控件的模版? dbs.Execute "SELECT * INTO 在校学生 FROM [Excel 8.0;DATABASE=" & App.Path & "\MyExcel.xls].[WorkSheet1] "报错,在线等待 有没有什么工具或办法可以将Tc 下的程序移植到linux下运行? 求助! 请教!急! 世间什么才是最珍贵的? 大家來說說2003年版<射雕>的敗筆. 请教:如何在VB开发的程序中判断一个程序在硬盘上的安装路径? 帮忙!谢谢! 此类问题如何查询? 请教个问题:每次启动机器都会打开IE跳到我们这边的一个内部网站去,本来启动就慢----火死了,怎么去掉---在注册表了改么? combo控件问题. 问一个关于刚开机的win.com的问题。请高手帮帮忙呀! dbs.Execute "SELECT * INTO 在校学生 FROM [Excel 8.0;DATABASE=" & App.Path & "\MyExcel.xls].[WorkSheet1] "报错,在线等待 请问我如何在注册网站成功后,在exchange中也建立一个与注册网站时同名的帐号呢? ASP(javascript)自动回复问题?? ★★母亲的生日★★ 哪位有没有用spcomm控件进行串口通讯的例子? 大家帮我看看这是用哪个做的? 关于打印... 两路由器的使用方法比较,哪个好些? 晏子是个怎样的人,理由是什么 利用孔雀石可以找铜矿,孔雀石为什么这么特殊,它与铜矿有什么关系 资治通鉴 魏文侯书 晏子是个怎样的人 孔雀石是何矿物?如何形成的?为何是铜矿最直接的找矿标志? 求资治通鉴白话文版 发我邮箱就行ruifengjingmi@sohu.com 谢谢各位网友老大~ 晏子是个怎样的人,从哪里看的出 什么叫资治通鉴? 资治通鉴白话文版本哪个版本的比较好?全套的那种.文白对照的也可以.说清楚点 ,哪个出版社的 碘被公认为人类的“智慧元素”下列关于碘的说法错误的是?A碘元素是非金属元素 B相对原子质量为126.9克C质子数为53 D原子序数为53 高中三角涵数问题已知sin(a+b)=1/3,sin(a-b)=1/5,求tan a/tan b的值要过程啊 求白话文如题! 碘是智力元素,那么硒呢?还有什么其他的吗? 世界上什么物种最多 求两条关于热爱生命的名言, 稳压器的延时选择短与长是什么意思开着的时候不知道按短与长哪个好 照顾幼蜂是哪一种蜜蜂的职责? 用一句话概括这段文字的意思 碳酸钙和水发生化学反应吗?生成的是碳酸和氧化钙吗 一个正常的蜜蜂群体中,有几种不同的蜂?它们各自有什么作用 下列的动物行为中,不属于防御行为的是A. 蝗虫的体色与周围的环境颜色十分相似,有利于隐藏自己B. 乌贼遇到天敌难以脱身时会释放墨汁,趁机逃脱C. 两只蟋蟀争斗中,一只退却逃走D. 野兔发现 各风带中,一般多雨的是哪个风带 寡人之于国也 虚词 什么是LDO 过圣诞节送他一个玩具,能锻炼动手能力、创造力什么的,变形金刚啊乐高啊都买过了. 指出下列虚词的用法及意义.①以:王好战,请以战喻.以五十步笑百步,则何如.斧斤以时入山林,材木不可胜用也.五亩之宅,树之以桑,五十者可以衣帛矣.谨庠序之教,申之以孝悌之义.②则:河内 LDO的短路电流是什么意思呀,为什么比有效电流还小? 如何才能富有创造力 资治通鉴简介作者,编写时间! 1.下列选项不属于动物行为的是a、小猴走钢丝b、小羊呼吸 2.在甲、乙、丙三支试管中放等量清水,插入相同的枝条,将试管口包严,将甲、乙同时放在阳光下,乙的枝条用塑料包严.丙置于阴暗处, 稳压器延时什么意思 《资治通鉴》简介100字左右! 3.下列选项中不属于动物行为的一项是( C )A.猫静伏在老鼠出没的洞口B.变色龙体色由褐色变成绿色C.母兔生下的小兔有黑兔和白兔D.蝙蝠白天栖息于岩壁上 稳压器上的延时是什么意思我怎么这里经常断电 我买了UPS 但是电压不稳 UPS老是啪啦啪啦响 决定在配上稳压器 买了一款带延时的 不知道是用到 UPS前 还是 UPS后边呢? 如果用到前面 断电再 中国哪里有孔雀石 13.以下是利用幼小蝌蚪和甲状腺激素探究甲状腺激素作用的实验设计,不合理的是A.实验组饵料中添加甲状腺激素,对照组不做任何处理B.实验组与对照组应饲喂等量的同种饲料,放在相同的 最具创造力的音乐唱片用英文怎么说? 孔雀石的价值我有一张原产非洲、直径一米的孔雀石圆桌,请问其价值多少? 小蝌蚪什么动物 通过具体实例,说明计算机是如何完成数据处理的 问大家一种蜜蜂黑色的个头特大老爱在木头缝 草堆里的蜜蜂我们这叫葫芦蜂还是什么 他的学名叫什么? 酶、抗体和维生素那个不可以在活细胞内产生? 做了心理学实验“有无反馈对画线准确性的影响”得到了两组数据该怎样数据分析? 什么叫孔雀石?它的出产地的那里?主要用途是干什么的? 火烧孔雀石是不是焦炭还原法? 利率敏感性缺口如何理解 试述动脉血压的形成原理及其影响因素 ①tan(π/4+a)=1/2求tan a 的值②(sin2a-2cos^2a)/(1+tan a)的值? 晏子是一个怎样的人 为什么说审美是感受性与创造性的统一 Very few plants and animals can ___________ heat or cold for a long time. spend catch endure endure 下列各项中,不属于器官的是:A皮肤 B骨 C脑 D血液 如何理解审美活动是一种价值活动 看云识天气第一段压缩为一句话.(25字以内)急 为什么在重力影响下人体器官不会往下掉?是因为血液浮力还是骨骼支撑器官还是血管支撑? 相邻楼房之间采光距离应该是多少 高中英语选择,The Earth's most critically endangered animals and plants _ very rapidly in theThe Earth's most critically endangered animals and plants _ very rapidly in the last ten years.A.have been disappeaeing B.had disappeared 晏子是个什么样的人急用, 为什么可以利用孔雀石找铜矿 资治通鉴 魏文侯书和世说新语 陈太丘与友期共同主题是什么? 澳七旬男子苦等救护车未果 在家中不治调查指许多澳洲学生吃“聪明药”提高成柬埔寨反对党举行街头示威 抗议选举成日本一公司推出价值66万纯金奥特曼美国职棒大赛 球员为赢对手纷纷留长胡日本6名女性涉嫌在网络上上传猥亵视频韩考虑增加新一代战机项目预算 现为4德防长批评美国监控传闻 称欧美关系将俄总理七小时“安徽印象”澳洲一名男子涉嫌逼迫未婚妻致其死亡接韩考虑增加新一代战机项目预算 现为4浙江省政协公开征集提案线索 侧重群众湖北阳新县:两名女干部上班时间互殴难美国一女子梦游跌落地铁仅擦伤(图)美军将撤离阿富汗 价值70亿美元军需美国男孩携玩具枪街头把玩不肯放下 被美国扶贫粮食券遭诈领 部分受惠人折价调查称8成法国选民认为2017年大选日本最古老农村歌舞伎舞台将公演 祈祷日本明治奶粉决定停止在华销售 称市场澳大利亚一消防飞机救火时坠毁 驾驶员“发微评 赢珠宝”获奖名单出炉多股涨停操作不当突发爆炸爱心助学温暖贫困学子金奖杂技要来郑州迷路老人难开口 耐心民警“猜”出家年终理财季供暖版图上 “煤老大”地盘减至6%金庚医院加盟“明天计划”珠宝企业“曝光台”第一批优势企业故园之溪如何给秀发“喝饱水”上学路上捡破烂,走完7年求学路博爱县法院执行14年了无果恒大、中能媒体:国铁局低调履职 已迁入新办公地不管豫A豫B 都能在豫“X”审车微播报直升机空中环游焦作躺着也能买车险
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘