为什么邮件代码不起作用

时间:2009-08-20 05:09:37

标签: asp-classic cdo

Set objCDOSYSMail = Server.CreateObject("CDO.Message") 
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")

Set Flds = objCDOSYSCon.Fields
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "any mail"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "any password"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "any server"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")  = 25
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1

Flds.update

Set objCDOSYSMail.Configuration = objCDOSYSCon 

objCDOSYSMail.From = "any mail"
objCDOSYSMail.To = "any mailid"
'' // objCDOSYSMail.CC = "any mailid"
objCDOSYSMail.Bcc = "any mailid"    
objCDOSYSMail.Subject = "feed back"                     
objCDOSYSMail.HTMLBody = strBody

objCDOSYSMail.Send

Set objCDOSYSMail = Nothing

'' // Response.redirect("thank.html")
response.Write("saved")

3 个答案:

答案 0 :(得分:3)

更改

Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1

Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

1 - 通过拾取目录进行查找 2 - 通过SMTP发送

查看您的其他参数,您显然是尝试通过端口25发送。

答案 1 :(得分:1)

试试这个


    Dim objCDOSYSMail
    Dim objCDOSYSCon
    Dim Flds

    Set objCDOSYSMail = Server.CreateObject("CDO.Message") 
    Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration") 
    Set Flds = objCDOSYSCon.Fields

    With Flds
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "any server"

    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")  = 25

    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "any mail"

    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "any password"

    .Update

    End With

    Set objCDOSYSMail.Configuration = objCDOSYSCon 

    'Sending The Email
    With objCDOSYSMail
    .From = "any mail"
        .To = "any mailid"
        .Subject = "feed back"                                             
        .HTMLBody = "my Message"
        .Send

    End With

    'Disposing Objects

    Set objCDOSYSMail = Nothing
    Set objCDOSYSCon = Nothing
    Set Flds = Nothing

如果没有收到任何错误,请检查服务器上的错误日志。确保服务器可以将电子邮件中继到电子邮件服务器(smtpserver)。这可以通过从网络服务器到电子邮件服务器执行快速“TELNET会话”来完成。某些SMTP服务器也会在发件人域上执行反向DNS。这可能听起来很愚蠢,但也要检查用户名和密码。

  

注意:您的问题已被删除,因为您没有明确说明您的意图。下次是“SPECIFIC”而不是“PACIFIC”(就像大海)。在这里闲逛的大多数人都是专业人士或者想成为一员,所以至少要尝试成为一员。

答案 2 :(得分:0)

您可能想要使用open source library ajaxed。它会检测到组件,您无需担心这一点。

  

忘记选择的问题   正确的电子邮件组件(安装&   配置它)。 ajaxed为此做到了   您。它检查哪些组件   安装在服务器上并使用   “最好的。请参考API   查看当前的组件   支持的。正如此页面一样   Jmail,ASPEmail和CDOSYS是   支撑。

以下是有关如何send an email

的教程