读书人

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

发布时间: 2013-03-01 18:33:02 作者: rapoo

关于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服务。

读书人网 >asp.net

热点推荐