源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 337|回复: 17

[ASP编程] ASP用JMail、CDO发送邮件

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2006-7-14 00:00:00 | 显示全部楼层 |阅读模式
前一段时间有发过一个简单的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)

%>
回复

使用道具 举报

2

主题

2万

回帖

380

积分

中级会员

Rank: 3Rank: 3

积分
380
发表于 2022-8-18 22:40:29 | 显示全部楼层
还不错啊
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

59

积分

注册会员

Rank: 2

积分
59
发表于 2022-9-3 06:18:15 | 显示全部楼层
需要很久了终于找到了
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2023-2-4 19:16:58 | 显示全部楼层
我找了挺久终于找到了
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

221

积分

中级会员

Rank: 3Rank: 3

积分
221
发表于 2023-5-23 01:49:12 | 显示全部楼层
强烈支持楼主ing……
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

55

积分

注册会员

Rank: 2

积分
55
发表于 2023-7-1 07:12:42 | 显示全部楼层
看看怎么样再说
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

93

积分

注册会员

Rank: 2

积分
93
发表于 2023-8-22 06:04:58 | 显示全部楼层
很不错的源码论坛
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-10-25 21:01:22 | 显示全部楼层
哦哦哦哦哦哦哦哦哦
回复 支持 反对

使用道具 举报

27

主题

2万

回帖

331

积分

中级会员

Rank: 3Rank: 3

积分
331
发表于 2023-12-9 23:36:49 | 显示全部楼层
vcxvcxv
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

120

积分

注册会员

Rank: 2

积分
120
发表于 2024-3-22 08:52:32 | 显示全部楼层
搞个免费的用用
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-12-5 00:55 , Processed in 0.082797 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表