因客户需求在不安装组件的前提下发送邮件,且使用ASP脚本发信,经过查阅资料,决定使用微软自带的CDO组件。
CDO.Message是微软自带的邮件组件,使用其发送邮件是非常快速的,而不需要安装任何组件实现。
然而网上绝大多数CDO例子均是错误的,经过研究并修正才得以成功。
以下附带源码,供大家参考使用:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
response.charset="utf-8"
Session.CodePage=65001
function SendMail(YourSmtp,YourPort,YourAccount,YourPassword,SendEmail,SendEmails,SendTopic,SendBody,SendAttachment)
MS_Space = "http://schemas.microsoft.com/cdo/configuration/"
Set Email = CreateObject("CDO.Message")
Email.From = YourAccount
Email.To = SendEmail
If SendEmails <> "" Then
Email.CC = SendEmails
End If
Email.Subject = SendTopic
Email.HTMLBody = SendBody
'Email.Textbody = SendBody
If SendAttachment <> "" Then
Email.AddAttachment SendAttachment
End If
With Email.Configuration.Fields
.Item(MS_Space&"sendusing") = 2
.Item(MS_Space&"smtpserver") = YourSmtp
.Item(MS_Space&"smtpserverport") = YourPort
.Item(MS_Space&"smtpauthenticate") = 1
.Item(MS_Space&"sendusername") = YourAccount
.Item(MS_Space&"sendpassword") = YourPassword
.Item(MS_Space&"smtpusessl") = True
.Item(MS_Space&"smtpconnectiontimeout") = 20
.Update
End With
Email.BodyPart.Charset = "UTF-8"
Email.Send
Set Email=Nothing
SendMail=True
If Err Then
Err.Clear
SendMail=False
End If
End Function
'调用方法
If SendMail("smtp.xx.com","xx@xx.com","465","xxxxxx","xxx@xxx.com","","测试邮件","邮件内容","")=True Then
response.write"发送成功"
Else
response.write"发送失败"
End If
%>
还等什么,试试吧!