5

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

我的代码是:

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 = "<table><tr><td>Company Name:</td><td>" + txt_cname.Text + "</td></tr><tr><td>Address With No.:</td><td>" + txt_addwithno.Text + "</td></tr><tr><td>Contact Person:</td><td>" + txt_conperson.Text + "</td></tr><tr><td>Email Id</td><td>" + txt_email.Text + "</td></tr><tr><td>Description</td><td>" + txt_description.Text + "</td></tr></table>";
    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 = "";

}
4

7 回答 7

15

Google 可能会阻止应用程序访问您的帐户
您可以在此处启用应用程序以使用您的凭据访问 google 帐户:

https://accounts.google.com/DisplayUnlockCaptcha

于 2012-09-27T12:53:38.747 回答
4

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

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

[...]

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

于 2012-05-22T09:00:38.670 回答
2

尝试端口 587(它对我有用)并将 UseDefaultCredentials 设置为 false。设置这个并尝试发送邮件

于 2012-05-22T09:05:00.267 回答
1

我认为您使用了错误的端口。

你应该使用 465

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

干杯

于 2012-05-22T09:02:03.893 回答
0

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

于 2013-11-26T20:21:43.807 回答
0

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

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

于 2014-03-30T03:06:22.520 回答
0

Microsoft 声明不推荐使用 SmtpClient。你应该使用 MailKit 它肯定会工作。

https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.smtpclient?view=netframework-4.0

我们不建议您将 SmtpClient 类用于新开发,因为 SmtpClient 不支持许多现代协议。请改用 MailKit 或其他库。有关更多信息,请参阅 SmtpClient 不应在 GitHub 上使用。

于 2019-11-03T22:22:40.913 回答