ASP使用CDO对象发送电子邮件

来源:互联网 发布:linux查看目录大小命令 编辑:程序博客网 时间:2024/06/06 18:55

环境Windows Server  2003R2 英文版,Plesk服务器管理器,邮件服务用的是MailEnalbe,IIS没有开SMTP。

    因为美帝的一次机房事故,导致我们在洛杉矶的服务器非正常重启一次,然后我们的邮件服务就不能用了,直接在浏览器地址栏输入webmail.domain.con也不可访问,Plesk提示没有开启邮件服务。

    我对Plesk和MailEnable之前几乎没有了解,所以发不出去邮件,从程序员的角度出发,以为是CDO组件出了问题,没想到绕了个原路,明白了CDO对象的使用。记录如下:


Dim ObjSendMail'下面定义的五个常数是干什么的?我也不知道,反正就这么定义去,英文注释看不懂-_-Const cdoSendUsingPickup = 1 'Send message using the local SMTP service pickup directory. Const cdoSendUsingPort = 2 'Send the message using the network (SMTP over the network).Const cdoAnonymous = 0 'Do not authenticate Const cdoBasic = 1 'basic (clear-text) authentication Const cdoNTLM = 2 'NTLMSet ObjSendMail = CreateObject("CDO.Message")    ObjSendMail.To ="邮件要发给谁就写谁的邮箱@domain.com" ObjSendMail.Subject ="邮件的主题"ObjSendMail.From = "发送邮件人的信箱@domail.com"ObjSendMail.TextBody ="邮件的内容,注意必须是纯文本。如果要换行,请使用VbCrLf换行。还有个是HtmlBody好像,这个可以用HTML代码。"ObjSendMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPortObjSendMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.domain.com"  '发件信箱的地址,有的是mail.domain.com,有的是的是smtp.domail.comObjSendMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasicObjSendMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "userid"  '登入信箱用的用户名,像Gmail和Hotmail必须挂上@hotmail.com,像126就不必了ObjSendMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"   '这个就不用说了吧ObjSendMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25'发件信箱的端口,或者叫SMTP的端口,一般是25ObjSendMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = false'是否需要SSL身份验证,有的需要,有的不需要,一般国内的小型企业邮箱不需要,但是126这种信箱需要ObjSendMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60'超时时间限制ObjSendMail.Configuration.Fields.Update ObjSendMail.Send    Set ObjSendMail = Nothing


这就是使用CDO发邮件的过程了。其实我折腾半个晚上之后发现,问题并不是我们的服务器对CDO控件的支持出了问题,而是他喵的因为服务器非正常重启,导致的邮件功能没打开!

我从网上找各种关于Plesk的使用说明书,结果各种英文的,我们服务器上的也是英文,没办法只能硬着头皮上了。最后发现在General-Domains-xxxxxxx.net下有个Service-Mail里面,我们的邮箱状态全灰色的,把鼠标放在右边那个按钮上,提示说什么Performance没开启还是什么的,于是我点开Performance一看:webmail状态是none!另外一个状态是Horde IMP H3,这啥意思不懂,于是就抱着试试看的想法选择Horde IMP H3,然后点OK,再看我们的邮箱全部正常了。

然后我用浏览器测试发邮件的程序——OK!

书到用舒方恨少啊!英语不好害死人- -

原创粉丝点击