1

例外:

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

我没有使用Defaultcredentials,所以我设置client.UseDefaultCredentials = false; 了另外,我提供了有效的电子邮件 ID 和密码、主机名和端口号;但是,我仍然得到相同的异常。我该如何解决这个问题?提前感谢您的帮助。

public void SendCustomerForgotPassword(string mailTo, string forgotUserId, string forgotPassword) 
{ 
    string mailSubject = "", mailBody = "";
    mailSubject = ""; 
    StringBuilder sbMailBody = new StringBuilder(); 
    sbMailBody.AppendLine("Welcome to *****,"); 
    sbMailBody.AppendLine("\r"); 
    mailBody = sbMailBody.ToString(); 
    SetSmtpClient(mailTo, mailSubject, mailBody); 
}




    private void SetSmtpClient(string recipients, string subject, string body)
    {
        string EmailFrom = "here set an email id";
        string EmailFromPassword = "set password";

        System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(EmailFrom, EmailFromPassword); 
        SmtpClient client = new SmtpClient(); 
        client.DeliveryMethod = SmtpDeliveryMethod.Network; 
        client.EnableSsl = true; 
        client.Host = "pod51018.outlook.com"; 
        client.Port = 587; 
        client.UseDefaultCredentials = false; 
        client.Credentials = credentials; 
        client.Send(EmailFrom, recipients, subject, body);
    }
4

2 回答 2

0

就像消息指出的那样,您没有经过身份验证。

在您的代码中:

string EmailFrom = "";
string EmailFromPassword = "";

        System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(EmailFrom, EmailFromPassword);

如果这是您的确切代码-您传递的是空的用户名和密码..

于 2012-10-22T13:17:05.703 回答
0

您需要检查以下详细信息是否正确(如 Office 365 面板上显示的详细信息)

  1. 主机名
  2. 电子邮件地址
  3. 密码

该代码看起来不错(假设您实际上传递了地址/密码,因为它是代码中的空白字符串),因此它可能是您的设置中的一个问题。

于 2012-10-22T13:18:18.817 回答