问题描述
This is Image Of Error这是完整的问题 System.Net.Mail.SmtpException: 'SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.0 Authentication required。
`private void button1_Click(object sender,EventArgs e)
{
MailMessage mail = new MailMessage(from.Text,to.Text,subject.Text,body.Text);
SmtpClient client = new SmtpClient(smtp.Text,587);
client.Port = 587;
client.Credentials = new System.Net.NetworkCredential(username.Text,password.Text);
client.EnableSsl = true;
client.Send(mail);
MessageBox.Show("Mail Sent!","Success",MessageBoxButtons.OK);
}`
解决方法
因为您使用自定义凭据并使用身份验证 (enablessl = true)。连同您自己的登录名(非默认),您需要添加:
client.UseDefaultCredentials = false;
在设置 client.credentials 之前
否则您填写的凭据将不会被使用
编辑: 如前所述添加此行时,仍然存在身份验证问题。尝试检查所有变量是否正确。这可以使用以下网站完成:https://www.smtper.net/
从技术上讲,应该在开始编程之前测试变量。
您收到的错误是“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.0 Authentication Required。意味着您没有使用 HTTPS 和/或无法使用凭据进行身份验证。因此,smtper.net 是确定您的凭据是否正确的最佳工具。
除了添加 client.usedeafultcredentials = false 之外,您的代码乍一看似乎是正确的。这就是我假设您使用的变量不正确的原因。