热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

ASP用JMail、CDO发送邮件

ASP用JMail、CDO发送邮件
前一段时间有发过一个简单的JMAIL邮件发邮件的代码,今天就把这个代码做一个具体的注解,并增加了另外两个格式的代码,并举几个简单的例子:
首先是jmail.smtpmail的核心代码:
 程序代码

<%
  Set jmail = Server.CreateObject("JMAIL.SMTPMail")   '创建一个JMAIL对象
  jmail.silent = true   'JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE
  jmail.logging = true   '启用使用日志
  jmail.Charset = "GB2312"  '邮件文字的代码为简体中文
  jmail.ContentType = "text/html"  '邮件的格式为HTML的
  jmail.ServerAddress = "Server Address"   '发送邮件的服务器
  jmail.AddRecipient Email    '邮件的收件人
  jmail.SenderName = "SenderName"    '邮件发送者的姓名
  jmail.Sender = "Email Address"    '邮件发送者的邮件地址
  jmail.Priority = 1   '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
  jmail.Subject = "Mail Subject"  '邮件的标题
  jmail.Body = "Mail Body"   '邮件的内容
  jmail.AddRecipientBCC Email   '密件收件人的地址
  jmail.AddRecipientCC Email   '邮件抄送者的地址
  jmail.Execute()   '执行邮件发送
  jmail.Close    '关闭邮件对象
%>


现在还有很多程序是使用这种方式来发信,这种方式有一个很大的缺陷,那就是发信是使用服务器本地smtp服务发出的,并没有通过任何smtp身份验证,
如果服务器设置了需要使用身份验证,则发信会失败。现在因为反垃圾邮件的需要,越来越多的服务器开始注重这方面的设置问题,如果你使用此种方法发信突然出现不正常,
则可能是服务器限制了匿名发信,上面的代码则就不会正常运作了。

这种方法我们不建议使用,但是现在还有很多asp程序使用此种方法,可能还是可以正常运作的,但是很难保证以后会一直正常,并且某些邮件服务器会拒收这种方法发出的信件,所以如果有可能的话,尽量不要使用这种方式。


w3 Jmail4.3组件重新设计了其内部结构——使用Message对象代替原来的单一对象Jmail.smtpmail发送邮件,有些方法需要身份验证的(如163、yahoo等),可以用下面的方法解决:
 程序代码

<%
     Set jmail = Server.CreateObject("JMAIL.Message")   '建立发送邮件的对象
     jmail.silent = true    '屏蔽例外错误,返回FALSE跟TRUE两值j
     mail.logging = true   '启用邮件日志
     jmail.Charset = "GB2312"     '邮件的文字编码为国标
     jmail.ContentType = "text/html"    '邮件的格式为HTML格式
     jmail.AddRecipient Email     '邮件收件人的地址
     jmail.From = "Email From for Sender"   '发件人的E-MAIL地址
     jmail.MailServerUserName = "UserName of Email"     '登录邮件服务器所需的用户名
     jmail.MailServerPassword = "Password of Email"     '登录邮件服务器所需的密码
     jmail.Subject = "Mail Subject"    '邮件的标题 
     jmail.Body = "Mail Body"      '邮件的内容
     jmail.Prority = 1      '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
     jmail.Send("Server Address")     '执行邮件发送(通过邮件服务器地址)
     jmail.Close()   '关闭对象
%>


使用这段代码发信,是当前最为稳定,也最为适用的发信方法,我们推荐使用Jmail发信的客户,使用此种方法来发信。


再讲一下 微软自带的CDONTS组件的发信的方法:
 程序代码

<%
    Set cdomail = Server.CreateObject("CDONTS.NewMail")  '建立邮件对象
    cdomail.Subject = "Mail Subject"   '邮件标题
    cdomail.From = "Sender's Mail"   '发件人的地址
    cdomail.To = "Email will from"   '收件人的地址
    cdomail.Body = "Mail Body"   '邮件的内容
    cdomail.Send    '执行发送
%>

我们写程序,一般情况下都是说要代码模块化,这样方便维护,同时也方便移植。因此,我在这里将这个发邮件的写成一个子程,在调用的时候可以直接调用(当然,如果你高兴写成函数的话也是可以的,这个主要是看个人兴趣):
推荐
代码如下:
<%
  '参数说明
  'Subject     : 邮件标题
  'MailAddress : 发件服务器的地址,如smtp.163.com
  'Email       : 收件人邮件地址
  'Sender      : 发件人姓名
  'Content     : 邮件内容
  'Fromer      : 发件人的邮件地址

  Sub SendAction(subject, mailaddress, email, sender, content, fromer) 
      Set jmail = Server.CreateObject("JMAIL.SMTPMail")   '创建一个JMAIL对象
      jmail.silent = true   'JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE
      jmail.logging = true   '启用使用日志
      jmail.Charset = "GB2312"  '邮件文字的代码为简体中文
      jmail.ContentType = "text/html"  '邮件的格式为HTML的
      jmail.ServerAddress = mailaddress   '发送邮件的服务器
      jmail.AddRecipient Email    '邮件的收件人
      jmail.SenderName = sender   '邮件发送者的姓名
      jmail.Sender = fromer    '邮件发送者的邮件地址
      jmail.Priority = 1   '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
      jmail.Subject = subject  '邮件的标题
      jmail.Body = content   '邮件的内容
      '由于没有用到密抄跟抄送,这里屏蔽掉这两句,如果您有需要的话,可以在这里恢复
      'jmail.AddRecipientBCC Email   '密件收件人的地址
      'jmail.AddRecipientCC Email   '邮件抄送者的地址
      jmail.Execute()   '执行邮件发送
      jmail.Close    '关闭邮件对象
  End Sub

  '调用此Sub的例子
  Dim strSubject,strEmail,strMailAdress,strSender,strContent,strFromer
  strSubject     = "这是一封用JMAIL发送的测试邮件"
  strContent     = "JMail组件发送测试成功!"
  strEmail       = "runbing@eyou.com"
  strFromer      = "runbing@eyou.com"
  strMailAddress = "mail.ubbcn.com"

  Call SendAction (strSubject,strMailaddress,strEmail,strSender,strContent,strFromer)

%>

推荐阅读
  • 本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文介绍了如何在 DB2 环境中创建和删除数据库编目。创建编目是连接新数据库的必要步骤,涉及获取数据库连接信息、使用命令行工具进行配置,并验证连接的有效性。删除编目则用于移除不再需要的数据库连接。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 探讨如何通过编程技术实现100个并发连接,解决线程创建顺序问题,并提供高效的并发测试方案。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文介绍了如何在具备多个IP地址的FTP服务器环境中,通过动态地址端口复用和地址转换技术优化网络配置。重点讨论了2Mb/s DDN专线连接、Cisco 2611路由器及内部网络地址规划。 ... [详细]
  • 创建第一个 MUI 移动应用项目
    本文将详细介绍如何使用 HBuilder 创建并运行一个基于 MUI 框架的移动应用项目。我们将逐步引导您完成项目的搭建、代码编写以及真机调试,帮助您快速入门移动应用开发。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 梦幻西游挖图奇遇:70级项链意外触发晶清诀,3000W轻松到手
    在梦幻西游中,挖图是一项备受欢迎的活动,无论是小宝图还是高级藏宝图,都吸引了大量玩家参与。通常情况下,小宝图的数量保证了稳定的收益,但特技装备的出现往往能带来意想不到的惊喜。本文讲述了一位玩家通过挖图获得70级晶清项链的故事,最终实现了3000W的游戏币逆袭。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
author-avatar
笑不评j
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有