日期:2014-05-17  浏览次数:20355 次

关于SmtpClient发送邮件,身份验证的问题

            SmtpClient client = new SmtpClient("xxx.com");
            client.UseDefaultCredentials = true;
//这里的用户不是Email形式的,想不通是不是这里的问题啊?
            client.Credentials = new NetworkCredential("ABCEFEG", "25wdksoeng");
            client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
            message.From = new MailAddress("aa@aa.aa", strFrom);
            message.To.Add(strto);
            message.Subject = strSubject;
            message.Body = strBody;

            message.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
            message.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
            message.IsBodyHtml = true;

            message.Priority = System.Net.Mail.MailPriority.High;

            client.Send(message);


报错信息:
SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为: Authentication required 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Net.Mail.SmtpException: SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为: Authentication required


换成其他的服务器就可以,下面代码验证成功的

            SmtpClient client = new SmtpClient("smtp.qq.com");
            client.UseDefaultCredentials = true;
            client.Credentials = new NetworkCredential("44@qq.com", "11");
            client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
            message.From = new MailAddress("44@qq.com", strFrom);
            message.To.Add(strto);
            message.Subject = strSubject;
            message.Body = strBody;

            message.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
            message.SubjectEncoding = System.Text.Enco