asp.net SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.5.1 Authentication Required [重复]

Posted

技术标签:

【中文标题】asp.net SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.5.1 Authentication Required [重复]【英文标题】:asp.net The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required [duplicate] 【发布时间】:2013-10-31 08:07:10 【问题描述】:

您好,我知道这个问题有点多余,但我的体验不同,这是我在 asp.net 上创建帐户后发送电子邮件的代码

Dim newreg As MembershipUser = Membership.GetUser(context.Request("username"))
                Dim newid As Guid
                If newreg.ProviderUserKey IsNot Nothing Then
                    newid = DirectCast(newreg.ProviderUserKey, Guid)
                End If

                Dim body As String = String.Empty
                Dim reader As StreamReader = New StreamReader(context.Server.MapPath("~/Account/email.htm"))
                body = reader.ReadToEnd
                body = body.Replace("UserName", context.Request("username").ToString)
                body = body.Replace("Url", "http://wwww.123.com/Account/activate.aspx?id=" & context.Request("username").ToString & "&usertype=" & givetype(context.Request("username")) & "&actid=" & newid.ToString)

                Dim mailMessage As MailMessage = New MailMessage
                mailMessage.From = New MailAddress(ConfigurationManager.AppSettings("UserName"))
                mailMessage.Subject = "Account Activation"
                mailMessage.Body = body
                mailMessage.IsBodyhtml = True
                mailMessage.To.Add(New MailAddress(context.Request("email").ToString))
                Dim smtp As SmtpClient = New SmtpClient
                smtp.Host = ConfigurationManager.AppSettings("Host")
                smtp.EnableSsl = True
                Dim NetworkCred As System.Net.NetworkCredential = New System.Net.NetworkCredential
                NetworkCred.UserName = ConfigurationManager.AppSettings("UserName")
                NetworkCred.Password = ConfigurationManager.AppSettings("Password")
                smtp.UseDefaultCredentials = False
                smtp.Credentials = NetworkCred
                smtp.Port = Integer.Parse(ConfigurationManager.AppSettings("Port"))
                smtp.Send(mailMessage)

奇怪的是,当我在 localhost 上运行网站时,gmail 允许它,但是当我在 vps 上运行网站时,它拒绝并给出此错误

SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证

任何帮助都可以解决问题

【问题讨论】:

【参考方案1】:

搞定了,问题是gmail阻止了发送电子邮件的请求,因为我为应用程序创建了一个密码,现在gmail没有阻止发送电子邮件的请求,希望这会有所帮助,如果有人愿意的话gmail遇到同样的问题

【讨论】:

以上是关于asp.net SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.5.1 Authentication Required [重复]的主要内容,如果未能解决你的问题,请参考以下文章

SMTP 服务器需要安全连接或客户端未通过身份验证。

使用c#发送电子邮件SMTP服务器需要安全连接或客户端未通过身份验证[重复]

SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证。 [复制]

SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.5.1 需要身份验证?

System.Net.Mail.SmtpException:SMTP 服务器需要安全连接或客户端未通过身份验证

错误。 SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.5.1 Authentication Required??? [复制]