【问题标题】:Couldn't send message to SMTP server. Transport Error 0x80040217无法向 SMTP 服务器发送消息。传输错误 0x80040217
【发布时间】:2023-04-06 19:18:01
【问题描述】:

我在使用 gmail 通过 asp 发送邮件时收到此错误,我已经使用了端口 465、587 和 25,结果相同

昏暗的邮件 将 email2 暗淡为字符串 将 urlms 暗淡为字符串

Dim mail 
dim email2 as string
dim urlms as string
				

mail = CreateObject("CDO.Message") 			
urlms = "http://schemas.microsoft.com/cdo/configuration/"	
mail.Configuration.Fields.Item(urlms  & "sendusing") = 2 'enviar usando port
mail.Configuration.Fields.Item(urlms  & "smtpserver") = "smtp.gmail.com"
mail.Configuration.Fields.Item(urlms  & "smtpserverport") = 465
mail.Configuration.Fields.Item(urlms  & "smtpusessl") = True
mail.Configuration.Fields.Item(urlms  & "smtpconnectiontimeout") = 60
mail.Configuration.Fields.Item(urlms + "smtpauthenticate") = 1
mail.Configuration.Fields.Item(urlms + "sendusername") = "" 'login
mail.Configuration.Fields.Item(urlms + "sendpassword") = "" 'password

mail.Configuration.Fields.Update

mail.Send

【问题讨论】:

  • 我希望这不是您的真实凭据,将它们发布在像 SO 这样的公共区域真的很愚蠢。
  • Google - Get started with IMAP and POP3你的设置是正确的。
  • 别担心,我虽然修好了:P

标签: email vbscript asp-classic cdo.message


【解决方案1】:

如果您在 Google 帐户中使用两步验证,则您需要更改设置,选择“启用安全性较低的应用”或生成 16 个字符的应用密码,并且您需要在代码中使用此密码,而不是您的实际的 gmail 密码。 https://www.google.com/settings/security/lesssecureapps

【讨论】:

    【解决方案2】:

    它对我自己的邮件服务器来说就像一个魅力,但它在 Gmail 上失败了我不知道为什么......

    无论如何,我也尝试了没有加号的连接,也没有工作,最后我用了这个:

    Dim ObjSendMail
    Set ObjSendMail = CreateObject("CDO.Message") 
         
    'This section provides the configuration information for the remote SMTP server.
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'Send the message using the network (SMTP over the network).
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="mail.yoursite.com"
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 ' or 587
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
         
    ' Google apps mail servers require outgoing authentication. Use a valid email address and password registered with Google Apps.
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'basic (clear-text) authentication
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") ="somemail@yourserver.com" 'your Google apps mailbox address
    ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") ="yourpassword" 'Google apps password for that mailbox
         
    ObjSendMail.Configuration.Fields.Update
         
    ObjSendMail.To = "someone@someone.net"
    ObjSendMail.Subject = "this is the subject"
    ObjSendMail.From = "someone@someone.net"
         
    ' we are sending a text email.. simply switch the comments around to send an html email instead
    'ObjSendMail.HTMLBody = "this is the body"
    ObjSendMail.TextBody = "this is the body"
         
    ObjSendMail.Send
         
    Set ObjSendMail = Nothing 

    http://somee.com/DOKA/DoHelpTopics.aspx?docode=false&thnid=102

    对我的服务器来说就像一个魅力,但它对 gmail 不起作用。

    【讨论】:

      【解决方案3】:
      //
      // MessageId: CDO_E_LOGON_FAILURE
      //
      // MessageText:
      //
      // The transport was unable to log on to the server.
      //
      #define CDO_E_LOGON_FAILURE              0x80040217L
      

      还有你为什么要使用加号来连接三个配置项。

      您的代码会使所有内容变暗两次。并且它会将事物变暗为字符串。

      您在不使用 Set 的情况下创建对象。

      我怀疑你的代码运行会产生错误。

      【讨论】:

      • 它对我自己的邮件服务器来说就像一个魅力,但它在 Gmail 上失败了,我不知道为什么
      【解决方案4】:

      注意:消息显示登录错误。确保名称和密码正确。

      Set emailObj      = CreateObject("CDO.Message")
      emailObj.From     = "dc@gail.com"
      
      emailObj.To       = "dc@gail.com"
      
      emailObj.Subject  = "Test CDO"
      emailObj.TextBody = "Test CDO"
      
      Set emailConfig = emailObj.Configuration
      msgbox emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") 
      emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
      emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
      emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")    = 2  
      emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1  
      emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")      = true 
      emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")    = "YourUserName"
      emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")    = "Password1"
      emailConfig.Fields.Update
      
      emailObj.Send
      
      If err.number = 0 then Msgbox "Done"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多