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

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

编辑:说三道四文库 发布时间:2017-12-14 11:23
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 指向图片所在主机
国外安全产品再遭信任危机 安全产品国产化步伐加快 最终幻想XIV的重生--SQUARE ENIX《最终幻想14》制作人吉田直树介绍 如何打造百万级自然增长的微信HTML5应用 听邵海杨聊聊1000+台服务器背后的故事 借助Facebook、Twitter等社交平台API打造超炫酷的那些应用 Unity中Shader的开发运用实战详解,开放报名! 我从独立游戏开发学到的6件事儿 果断Mark!Searchcode——源代码搜索利器 《近匠》图灵机器人:App和移动硬件的智慧大脑 极路由发布HiWiFi OS及应用开放平台 Loom SDK框架:命令行快速开发跨平台2D游戏 安全管家Q2移动安全数据报告:窃取隐私最多 Project Adam vs. Artificial Brain,微软与谷歌角力人工智能 “微信公众平台优秀开发商”征集评选活动正式启动 移动数据库新疆界:开源、Swift、可穿戴... Chromebook侵蚀微软商用PC市场,成绩喜人 2014微信开发者大会议程公布 8月1日前购票8折优惠并赠书 四火的唠叨:也谈谈全栈工程师 图形化与集成趋势 协同软件致远发新品V5.1 跨平台开发如何事半功倍 Xamarin推出免费培训 《近匠》上海庆科:海尔智能家居背后的云方案 轻松DIY智能硬件,开源电子原型平台Hippo-ADK 所见即所得!基于Polymer的设计工具Mobile UI Elements 好的产品经理是怎样炼成的? 统一架构、统一运维:UnitedStack发布UOS2.0 把轻应用带进汽车——宝马、百度编程马拉松大赛启动 “钢铁侠”Insteon的逆袭:声控智能家居新时代 游戏云纪元 第二届游戏运营技术论坛即将召开 Bitly:构建月处理60亿点击的分布式系统 重塑微软:Satya Nadella开启整合之路 推送工具个推完成B轮数千万美金融资 可以动态增加<option>吗? datagird高手的问题! 数据库导入问题。在线等!急啊!!! 高手来帮忙 為何調用data module中的adoconnection會出錯。 怎样把几张jpg图转换成avi的文件 ★☆pb8异机连接sql server数据库的问题???50分献 菜鸟求问,急需回答!!! 有哪位高手知道 哪位同志能提供软件工程电子文档教程下载的站点给我 菜鸟问题 简单问题 ASP里流媒体上传问题 初学VC得困惑 用第三方类MultipartRequest上传文件时,怎样实现根据用户填写的表单来决定上传路径 当我插入一个usb设备,系统装好驱动后注册表会有变化吗? 如何解决BUTTON重入的问题。 关于如何获得文件域中的文件名!!!!!!!!!!!!!!!!! 游戏编程初学者的作品.(弹球) 有没有汨罗的朋友呀?????? 在线等,触发器如何使用? 请问ActiveX controls event发出的消息怎样在container里接收 UNIX的cc编译结果: [请问]i586是什么意思?PPC又是什么?另外RedHat9无法安装的问题…… 不知道大家都玩不玩新闻组,给大家提供几个中文新闻组地址并讲一下使用方法,感觉比BBS好玩! 高分求助,现谢谢了。 !急关于CrystalReport 下面这样类型转换,居然可行, 我下面的问题解决了 ORACLE统计问题 腊肉是月老啊,单身的哥哥们找腊肉拉红线啊! 新闻搜索 using namespace std; 微星845 Ultra-C 支持P4赛扬2.0的吗? 请问哪里有关于cc的比较好的文档资料. 水晶报表的问题!!!!!!!!!!!! 关闭Jbuilder9时,会弹出微软拼音输入法的关于信息框,如何解决? TreeView的删除问题/// 怎样在delphi里使用windows定义的结构体 问个问题 顺便散分 sub main问题 郁闷,一夜起来信誉分掉了一大截,散分 请问UNIX下makefile 是怎么一回事 我在学习C#,不过基础不好,很吃力!中秋快乐! 如何防止文件被访问?谢谢! 今年中秋我爸收了一大堆礼物,价值估计不下于20万(我爸是税务局长),呵呵,太高兴了!再散点分给大家!今年中秋我爸收了一大堆礼物, ASP.NET有没有类似javascript中的window.confirm( )这样的方法,弹出对话框提示是否确认? C#builder里的CaliberRM有谁用过? 学ASP学的我晕了,大家给条路!!! 简单问题求助~~~~~~~~~~~~~~~ sql7.0到sql2000升级 “揿”子的解释 北京话揿头拍子是什么意思? 宠物企鹅可以活多长时间啊? 企鹅最多能活多久 有关沟通的大学语文作文? 大学语文的作文!急!作文:满分40分.题目: 社会这本书要求:(1)除诗歌外,文体不限; (2)字数不少于800字; (3)字迹工整,卷面整洁. 作文《我看大学语文》该怎么写啊,求范文 大学语文作文多少字要求多少字 最好多少字 好的结构是怎么样的 ___________,乾坤日夜浮.亲朋无一字,____________.戎马关山北_________. 一个人长期独处,会变的怎样! 揿纽是什么意思急~~~~~~ 李源潮同南非副总统莫特兰蒂举行会谈地方金融机构应做大还是做小?省政协经美国安局30天内收集西班牙6050万中储粮:发现两企业违规将进口油菜籽掺贵州遵义市委书记廖少华涉嫌严重违纪违韩国陆军前方哨所一士兵中枪身亡 军方尼日利亚叛军袭击军队 医院收到35具突尼斯政治纷争致市政荒废 街头成“垃韩国陆军前方哨所一士兵中枪身亡 军方省委通报省级班子专题民主生活会情况女子骑电瓶车上高速 前后行驶约35公新会 上半年进出口贸易总额近150亿为了团聚再大的困难也能克服桩机吊车倒塌 险些砸到院墙开平 完成9个“三旧”改造项目古巨基开饼店了!不是玩票,是拼命!楚天都市报讯 龚琳娜 著图文:截至昨日14时398人遇难 1苏宁派微信红包总值18亿元二级水源保护区旁 砖厂傍晚大冒黑烟眼见情人吃醋投河 男子施救未果离开图文:梨园隧道顶部漏水老房有鬼光明腐朽星河劫网游之毒一无二法师领主武技欲苍穹之都市修神爱的眼泪在飞凶兽称神飞升诛仙知识改变异界超级修仙空间成吉思汗陵旅游赛汗塔拉生态园旅游应县木塔旅游凉城岱海旅游响沙湾旅游环岛路旅游洪坑民俗文化村旅游高雄之眼旅游梦时代中心旅游东海岸旅游东门旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘