在Asp.Net中发送电子邮件时,获取错误传输错误代码为0x80040217

时间:2012-02-06 07:52:51

标签: asp.net smtp

我正在尝试发送电子邮件

但是我收到了这个错误。

无法将邮件发送到SMTP服务器。传输错误代码是0x80040217。服务器响应不可用

任何有任何想法的人请帮帮我

4 个答案:

答案 0 :(得分:15)

发现当Gmail的安全设置不允许从您打算使用的地址发送邮件时,您也会收到此错误。我必须通过以下方式为我的帐户启用访问安全性较低的应用程序:

  1. 登录您要用于从Excel发送电子邮件的地址。
  2. 访问页面https://www.google.com/settings/security/lesssecureapps
  3. 点击启用较少安全的应用。
  4. 点击完成。

答案 1 :(得分:8)

这是由SMTP服务器的用户名或密码错误引起的 通常意味着服务器已禁用您的帐户垃圾邮件i 你发了1500封邮件

答案 2 :(得分:3)

感谢您的回复,它有效!这是因为我没有启用此选项: https://www.google.com/settings/security/lesssecureapps 如果有人需要它,这是我在Qlikview中使用的VBScript代码:

SUB SendMail
    Dim objEmail

    Const cdoSendUsingPort = 2  ' Send the message using SMTP
    Const cdoBasicAuth = 1      ' Clear-text authentication
    Const cdoTimeout = 60       ' Timeout for SMTP in seconds

     mailServer = "smtp.gmail.com"
     SMTPport = 465     '25 'SMTPport = 465
     mailusername = "marcos.esgu**@gmail.com"
     mailpassword = "Ki***"

     mailto = "marcos.esgu**@*****" 
     mailSubject = "my test-deleteme" 
     mailBody = "This is the email body" 

    Set objEmail = CreateObject("CDO.Message")
    Set objConf = objEmail.Configuration
    Set objFlds = objConf.Fields

    With objFlds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = mailServer
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTPport
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = cdoTimeout
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasicAuth
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = mailusername
    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mailpassword
        .Update
    End With

    objEmail.To = mailto
    objEmail.From = mailusername
    objEmail.Subject = mailSubject
    objEmail.TextBody = mailBody
    'objEmail.AddAttachment "C:\report.pdf"
    objEmail.Send

    Set objFlds = Nothing
    Set objConf = Nothing
    Set objEmail = Nothing
END SUB

答案 3 :(得分:1)

使用BizTalk时遇到同样的问题,其中指定了适配器默认处理程序以使用NTLM身份验证(默认情况下)。即使我指定在发送端口属性上覆盖处理程序,BizTalk也不允许我覆盖适配器默认处理程序。我需要更改适配器默认处理程序才能使其正常工作。

现在有效!