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

我有一个问题,当我通过此代码发送邮件时,出现错误“SMTP服务器需要安全连接或客户端未经过身份validation。服务器响应是:5.5.1需要身份validation。”

我的代码是:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { MailMessage mail = new MailMessage(); mail.To.Add("info@msslindia.com"); mail.From = new MailAddress("info@msslindia.com"); string body = "
Company Name:" + txt_cname.Text + "
Address With No.:" + txt_addwithno.Text + "
Contact Person:" + txt_conperson.Text + "
Email Id" + txt_email.Text + "
Description" + txt_description.Text + "
"; mail.Body = body; mail.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.Port = 25; smtp.UseDefaultCredentials = true; smtp.Credentials = new System.Net.NetworkCredential("info@msslindia.com", "xyz"); smtp.EnableSsl = true; smtp.Send(mail); txt_cname.Focus(); txt_cname.Text = ""; txt_addwithno.Text = ""; txt_conperson.Text = ""; txt_email.Text = ""; txt_description.Text = ""; }

Google可能会阻止某个应用访问您的帐户
在这里,您可以使用您的凭据启用应用程序访问Google帐户:

https://accounts.google.com/DisplayUnlockCaptcha

我认为您应该将UseDefaultCredentials设置为false,因为您为连接定义了凭据。

如果服务器请求此SmtpClient对象应使用当前登录用户的默认凭据进行身份validation,请将此属性设置为true

[…]

如果UseDefaultCredentials属性设置为false ,则在连接到服务器时,Credentials属性中设置的值将用于凭据

尝试端口587(它适用于我)并将UseDefaultCredentials设置为false。 设置此项并尝试发送邮件

我认为你使用的是错误的端口。

你应该使用465

http://support.google.com/mail/bin/answer.py?hl=en&answer=13287

干杯

端口并不重要,因为System.Net.Mail不支持隐式SSL,换句话说它完全忽略了“端口”参数。

我试图通过SQL Server 2012数据库邮件进行设置,并得到相同的消息。

即使在使用特定于应用程序的密码之后,我也无法使用我的主要g-mail帐户使用双重身份validation。 我最终尝试了我的辅助帐户,它没有双重身份validation,并且它立即起作用。 因此,对于任何无法使用上述解决方案之一进行工作的人,请使用标准的auth g-mail帐户进行尝试。