邮件发送 身份验证失败
public bool SendEmailToSupplier(string from, string to, string subject, string body) { try { System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(from, to); msg.Subject = subject; msg.Body = body; msg.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312"); msg.Priority = System.Net.Mail.MailPriority.High; System.Net.Mail.SmtpClient cliect = new System.Net.Mail.SmtpClient("smtp.qq.com"); cliect.Credentials = new System.Net.NetworkCredential("692500034@qq.com", "********");//登陆的邮箱名和密码 cliect.Send(msg); return true; } catch (Exception ex) { Response.Write(ex.Message); return false; } }using System; using System.Net.Mail; using System.Net; /// <summary> /// 说明:在.net2.0以上版本中发送电子邮件的方法示例 /// 用到的类主要位于System.Net.Mail和System.Net命名空间下 /// 作者:周公 /// 日期:2008-08-08 /// 首发地址:http://blog.csdn.net/zhoufoxcn /// </summary> public class SendMail2 { public SendMail2() { } /// <summary> /// 发送邮件 /// </summary> /// <param name="to">收件人邮件地址</param> /// <param name="from">发件人邮件地址</param> /// <param name="subject">邮件主题</param> /// <param name="body">邮件内容</param> /// <param name="username">登录smtp主机时用到的用户名,注意是邮件地址'@'以前的部分</param> /// <param name="password">登录smtp主机时用到的用户密码</param> /// <param name="smtpHost">发送邮件用到的smtp主机</param> public void Send(string to, string from, string subject, string body, string userName, string password, string smtpHost) { MailAddress from = new MailAddress(from); MailAddress to = new MailAddress(to); MailMessage message = new MailMessage(from, to); message.Subject = subject;//设置邮件主题 message.IsBodyHtml = true;//设置邮件正文为html格式 message.Body = body;//设置邮件内容 SmtpClient client = new SmtpClient(smtpHost); [color=#FF0000] //设置发送邮件身份验证方式 //注意如果发件人地址是abc@def.com,则用户名是abc而不是abc@def.com [/color] client.Credentials = new NetworkCredential(userName, password); client.Send(message); } }
[解决办法]
//设置发送邮件身份验证方式
//注意如果发件人地址是abc@def.com,则用户名是abc而不是abc@def.com
client.Credentials = new NetworkCredential(userName, password);
注意这部分
[解决办法]
正好也才做了个自动发邮件的功能,但是还好没有出现这样的错误
[解决办法]
houfoxcn 这回答的应该就可以呀
[解决办法]
你用你的代码测试一下163之类的邮箱,看看问题是仅仅出在QQ邮箱上还是163的邮箱也不行。
[解决办法]
发送文本邮件(已测试可用)private void Button1_Click(object sender, System.EventArgs e){System.Web.Mail.MailMessage mail=new MailMessage(); mail.To="123@yahoo.com.cn";mail.From="456@126.com"; mail.Subject="wwww"; //mail.BodyFormat=System.Web.Mail.MailFormat.Text; mail.BodyFormat=System.Web.Mail.MailFormat.Html; //string mes=""+Request["mailto"]+",您好。"+"您的朋友:"+Request["username"]+"从信息网给您推荐了一篇文章--"+Request["url"]+"请您浏览!"; mail.Body="mes"; //mail.Body=this.message.Text.ToString(); //SmtpMail.SmtpServer= "smtp.163.com"; mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "123456"); //set your username here mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "123456"); //set your password heremail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/languagecode","0x0804"); SmtpMail.SmtpServer = "smtp.126.com"; //your real server goes here SmtpMail.Send(mail);}
[解决办法]
经使用163邮箱证实,QQ邮箱确实存在类似问题,但是163的邮箱就不会出现。
[解决办法]
qq邮箱是不行,我以前用也是不行,应该与QQ服务器有关,为了防止收发垃圾邮件,我觉得。
好像新申请的163邮箱也发送不成功!
[解决办法]
qq的不行,换gmail的试试