Asp发送邮件大多用的都是jmail,但是jmail收费,很多服务器不支持此组件。
其实通过windows服务器自带的CDO.Message即可发送邮件,无需额外安装组件。
下面是CDO.Message发送邮件的函数封装。
'======================================================= '参数说明 'MailAddress : 发件服务器的地址,如smtp.163.com 'LoginName ----登录用户名(不需要请填写"") 'LoginPass ----用户密码(不需要请填写"") 'Subject : 邮件标题 'EmailTo : 收件人邮件地址 'Sender : 发件人姓名 'Content : 邮件内容 '**************************************************** Function SendMailByCDO(MailAddress, LoginName, LoginPass, Subject, EmailTo, Sender, Content) Const cdoSendUsingMethod="http://schemas.microsoft.com/cdo/configuration/sendusing" Const cdoSendUsingPort=2 Const cdoSMTPServer="http://schemas.microsoft.com/cdo/configuration/smtpserver" Const cdoSMTPServerPort="http://schemas.microsoft.com/cdo/configuration/smtpserverport" Const cdoSMTPConnectionTimeout="http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout" Const cdoSMTPAuthenticate="http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" Const cdoBasic=1 Const cdoSendUserName="http://schemas.microsoft.com/cdo/configuration/sendusername" Const cdoSendPassword="http://schemas.microsoft.com/cdo/configuration/sendpassword" Dim objConfig Dim objMessage Dim Fields Set objConfig = Server.CreateObject("CDO.Configuration") Set Fields = objConfig.Fields With Fields .Item(cdoSendUsingMethod) = cdoSendUsingPort .Item(cdoSMTPServer) = MailAddress .Item(cdoSMTPServerPort) = 25 .Item(cdoSMTPConnectionTimeout) = 10 .Item(cdoSMTPAuthenticate) = cdoBasic .Item(cdoSendUserName) = LoginName .Item(cdoSendPassword) = LoginPass .Update End With Set objMessage = Server.CreateObject("CDO.Message") Set objMessage.Configuration = objConfig With objMessage .BodyPart.Charset = "utf-8" .To=EmailTo .From=LoginName .Subject=Subject .HtmlBody=Content .Send End With Set Fields = Nothing Set objMessage = Nothing Set objConfig = Nothing If Err Then SendMailByCDO = Err.Description Err.Clear Else SendMailByCDO = "OK" End If End Function