首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2013-03-01 
关于SmtpClient发送邮件,身份验证的问题SmtpClient client new SmtpClient(xxx.com)client.UseDefaul

关于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.Encoding.GetEncoding("gb2312");
            message.IsBodyHtml = true;



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

            client.Send(message);



请大大们指点,是什么地方的问题啊? SmtpClient
[解决办法]
SmtpClient client = new SmtpClient("xxx.com");

xxx.com地址都没有  肯定不行

[解决办法]
你不是有Java代码么。不妨发来看看。
[解决办法]
肯定是smtp服务器没写对或者用户或密码不对嘛
[解决办法]
public static void sendEmail(List<string> receiveNames,string title,string content)
        {
            System.Net.Mail.MailMessage mailMsg = new System.Net.Mail.MailMessage();
            if (String.IsNullOrEmpty(content)) return;//没内容则不发送
            mailMsg.From = new MailAddress("xxx.com");
            if (receiveNames == null) return;
            foreach (string name in receiveNames)
            {
                mailMsg.To.Add(name);
            }
            mailMsg.Subject = title;
            mailMsg.Body = content;
            mailMsg.BodyEncoding = Encoding.UTF8;
            mailMsg.IsBodyHtml = true;
            mailMsg.Priority = System.Net.Mail.MailPriority.High;

            SmtpClient smtp = new SmtpClient();
            smtp.Credentials = new NetworkCredential("xxx.com", "密码");
            smtp.Port = 25; // Gmail 使用 465 和 587 端口 
            smtp.Host = "xxx";//服务器
            smtp.EnableSsl = false; // 如果使用GMail,则需要设置为true 
            try
            {
                smtp.Send(mailMsg);
            }
            catch (SmtpException ex)
            {
                Prj.Log.Error("Error", ex);


            }
        }
[解决办法]
不知你邮箱设置里面是否有启用smtp。
用网页进邮箱--设置--账户--POP3/IMAP/SMTP/Exchange服务。

热点排行