代码之家  ›  专栏  ›  技术社区  ›  Sparafusile

CDO消息不会在请求收货时发送

  •  2
  • Sparafusile  · 技术社区  · 15 年前

    我正在用经典的ASP(是的,请原谅我)编写一个应用程序,它使用googlemail发送电子邮件。我让它像这样正常工作:

    Dim ObjSendMail
    Set ObjSendMail = CreateObject("CDO.Message") 
    
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = SendUsername
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = SendPassword
    ObjSendMail.Configuration.Fields.Update
    
    ObjSendMail.To = "x@x.x"
    ObjSendMail.From = "x@x.x"
    ObjSendMail.Subject = "subject here..."
    ObjSendMail.HTMLBody = "body here..."
    
    'ObjSendMail.Fields("urn:schemas:mailheader:disposition-notification-to") = SendUsername
    'ObjSendMail.Fields("urn:schemas:mailheader:return-receipt-to") = SendUsername
    'ObjSendMail.Fields.Update
    'ObjSendMail.DSNOptions = 14
    ObjSendMail.Send
    Set ObjSendMail = Nothing
    

    当我取消注释以下行时:

    'ObjSendMail.Fields("urn:schemas:mailheader:disposition-notification-to") = SendUsername
    'ObjSendMail.Fields("urn:schemas:mailheader:return-receipt-to") = SendUsername
    'ObjSendMail.Fields.Update
    'ObjSendMail.DSNOptions = 14
    

    1 回复  |  直到 8 年前
        1
  •  1
  •   AnthonyWJones    15 年前

    它可能不起作用,因为Gmail不希望你这么做。这类事情经常被垃圾邮件发送者解释。

        2
  •  1
  •   Carmen Nuccio    6 年前

    我知道这已经有几年了,因为这是积极的,但我刚刚找到了一个解决办法,所以我要张贴它的情况下,任何人都有这个问题。

    但是,如果您有权访问WHM,或者您所在的公司将为您更改设置(或者您运行自己的SMTP服务器),则可以设置您将向其播发DSN支持的主机。现在,此设置在不同的邮件服务器平台上可能不可用,因为我目前只有使用Exim/WHM的经验:

    Screenshot of this in Exim configuration manager

    免责声明:我不知道这会有什么不良影响,对垃圾邮件发送者针对您的邮件系统,使用您自己的风险。

    另外,另一个小技巧是,如果你对成功的邮件不感兴趣,你只希望无法投递的邮件在不同于发送地址的地址提醒你。在这里,您将摆脱DSNOptions和处置配置,只需将所需的电子邮件地址放入对象发送方这样地:

    objCDO.Sender = "returnedmail@domain.com"
    

    成功的电子邮件仍然是

    希望这将有助于任何人谁仍然使用经典的ASP与CDO邮件,总是想知道为什么他们不能得到这个工作了。

    推荐文章