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 = "Senders 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) %> |