不允许使用邮箱名称。 服务器响应为:authentication is required
来源:互联网 发布:交易平台软件使用协议 编辑:程序博客网 时间:2024/05/16 20:00
背景:本着全心全意为人民服务的理念,成绩系统上次验收提出来新的想法:教师留的作业学生没有及时上交,需要老师进行提醒。那么问题来了:提醒的方式有很多种,邮件,短信等等,权限系统验收的时候使用了邮箱,经过交流后才知道,用邮箱的好处是,邮箱的接口是免费的,而且比较稳定,短信的接口需要花钱,不同的运行商不同的接口,比较麻烦。权衡两者,先决定使用邮箱,后期有需要再使用短信。
一、问题出世
验收完成后,找到权限系统注册这块儿的负责人进行交流,丽敏告诉我方法,接下来就是我自己的实践,代码很简单,经过我的一番修修改改,终于能算得上是一个功能了。
DatagridOperate.js
//邮件发送功能-何丽杰-2016-02-04$("#remind").unbind("click").click(function loginQQ() { //var userID = document.getElementById("youxiang").innerHTML; //发送邮件给邮箱,用于激活邮箱 $.ajax({ type: "post", url: "/TeaQueryHomework/SendTEmail", success: function () { window.alert('邮件发送成功!'); } });});
TeaQueryHomeworkController.cs
using System.Net.Mail;//包含用于将电子邮件发送到简单邮件传输协议 (SMTP) 服务器进行传送的类。 #region sendTheMail 实现邮件发送的一个过程 何丽杰 2016-02-04 /// <summary> /// 实现邮件发送的一个过程 /// </summary> /// <param name="smtpserver">邮件服务器smtp.163.com表示网易邮箱服务器</param> /// <param name="smptport">端口号(通常网易和qq为25)</param> /// <param name="userName">发送端账号</param> /// <param name="pwd">发送端密码</param> /// <param name="strfrom">发送端账号</param> /// <param name="strto">注册的邮箱号</param> /// <param name="subj">邮箱的主题</param> /// <param name="bodys">发送的邮件正文</param> /// <returns></returns> protected bool sendTheMail(string smtpserver, string smptport, string userName, string pwd, string strfrom, string strto, string subj, string bodys) { SmtpClient _smtpClient = new SmtpClient(); _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式 _smtpClient.Host = smtpserver;//指定SMTP服务器 _smtpClient.UseDefaultCredentials = true; //获取或设置 Boolean 值,该值控制 DefaultCredentials 是否随请求一起发送。(放在下面的那一句之前) _smtpClient.Credentials = new System.Net.NetworkCredential(userName, pwd);//用户名和密码 MailMessage _mailMessage = new MailMessage(strfrom, strto); _mailMessage.Subject = subj;//主题 _mailMessage.Body = bodys;//内容 _mailMessage.BodyEncoding = System.Text.Encoding.Default;//正文编码 _mailMessage.IsBodyHtml = true;//设置为HTML格式 _mailMessage.Priority = MailPriority.High;//优先级 try { _smtpClient.Send(_mailMessage); return true; } catch (Exception e) { throw e; } } #endregion #region SendTEmail 默认设置发送邮件的初始值 何丽杰 2016-02-04 /// <summary> /// 默认设置发送邮件的初始值 /// </summary> /// <returns></returns> public ActionResult SendTEmail() { string smtpServer = "smtp.163.com"; // 邮件服务器smtp.163.com表示网易邮箱服务器 string smptport = "25"; //端口号(通常网易和qq为25) string userName = "helijie92902@163.com"; // 发送端账号 string pwd = "666666"; // 发送端密码(这个客户端重置后的密码) string strFrom = "helijie92902@163.com"; // 发送端账号 string strto = "helijie92902@163.com"; // 注册的邮箱号 string subj = "交作业提醒"; //邮箱的主题 string bodys = "2016年2月6日之前必须交作业!";//发送的邮件正文 bool bl = sendTheMail(smtpServer, smptport, userName, pwd, strFrom, strto, subj, bodys); if (bl == true) { return Content("ok"); } else { return Content("no"); } } #endregion
然后调试,结果出错了:
二、继续实践
找来丽敏,丽敏换成她的邮箱,结果就发送成功了。原来是我邮箱的问题。于是乎,各种上网查,好多答案都是邮箱的设置问题,还有就是加上一句代码:_smtpClient.UseDefaultCredentials = true;
三、问题再次出现
结果又出来一个错误:
和之前的那个长得差不多,其实,就是邮箱的设置问题,但是当时就是不知道在哪里。
四、Foxmail未解之谜
找来李平和丽男的邮箱进行测试,结果人家的邮箱就是能发送成功。重新想想问题的所在,人家使用的邮箱客户端是Foxmail,而我的是网易闪电邮。感觉问题可能出在使用的邮箱上,于是在邮箱上下功夫。在一年前,因为自己的电脑上的Foxmail总是验证不成功,所以使用网易闪电邮也是被逼无奈,当时Foxmail问题就是个未解之谜,出现下面的问题,尝试了很多方法,都不成功~~~
一年过去了,现在又遇到了这个问题,还是不知道该怎么办,无意中打开“客户端授权密码”,发现远离自己一直以来都开启着这个小功能,害了我一年之久,心塞~~~当时设置的密码已经忘记了,重置授权密码。
然后,在Foxmail密码空格中填写刚刚重置的密码,继续验证,成功啦,当时手欠,害了自己一年之久,现在解决了,还是感觉很开心。
然后在代码中填写自己的客户端密码,再次发送邮件,发送成功,好兴奋呀~~~~
友情提醒:
上面的“客户端授权密码”可以选择“关闭”,这样的话,代码中就填写你的邮箱密码。
“客户端授权密码”为每个客户端添加专属的加密授权密码,避免密码泄漏造成邮箱安全隐患。使用授权密码替代密码在客户端登录邮箱,加密验证更安全。如果你开启了这个小功能,那么就在代码中就填写你设置的客户端授权密码。
五、心得体会
1、有时候自己的一不小心,能让自己困惑很长时间,但是不要灰心,以后还会遇到的。因为你自己手欠导致的错误,一定会让你亲手补上。
2、还是那句话“办法总比困难多”,自己多动动小手查查,总会有收获的。
3、未来的软件越来越人性化,越来越开源。想像一下,人人都能使用“东拼西凑”的方法,自己亲手组装出一个功能齐全而且强大的软件,那该是多么开心的一件事呀。
- 不允许使用邮箱名称。 服务器响应为:authentication is required
- 163邮箱发送邮件碰到:System.Net.Mail.SmtpException: 不允许使用邮箱名称。 服务器响应为:authentication is required
- Send Error:不允许使用邮箱名称。 服务器响应为: You are not authorized to send mail, authentication is required
- Send Error:不允许使用邮箱名称。 服务器响应为: You are not authorized to send mail, authentication is required
- Send Error:不允许使用邮箱名称。 服务器响应为: You are not authorized to send mail, authentication is required
- smtpClient发邮件错误:不允许使用邮箱名称。 服务器响应为: You are not authorized to send mail, authentication is required
- smtpClient发邮件错误:不允许使用邮箱名称。 服务器响应为: You are not authorized to send mail, authentication is required
- .Net使用SmtpClient发送邮件,报错:不允许使用邮箱名称。 服务器响应为: xxxw
- java发送邮箱认证错误553 authentication is required
- smtpClient发邮件错误:不允许使用邮箱名称
- javax.mail.MessagingException: 553 authentication is required
- javax.mail.MessagingException: 553 authentication is required
- javax.mail.MessagingException: 553 authentication is required
- authentication is required (java发送邮件)
- 解决使用SmtpClient类时出现"不允许使用邮箱名称"的错误
- The krb5 extension is required for GSSAPI authentication)
- Full authentication is required to access this resource
- Full authentication is required to access this resource Unauthorized
- 浅谈程序的性格
- 点分治 nbut1654 Ancient battle tree
- 不抛出异常的swap
- Unable to create Debug Bridge:Unable to start adb server
- 基于httpClient3的多线程版本,使用spring管理生命周期
- 不允许使用邮箱名称。 服务器响应为:authentication is required
- iOS 【UIKit-转换坐标系(2)】
- Java回调机制
- 使用 Intel HAXM 为 Android 模拟器加速
- HDOJ 1087 Super Jumping! Jumping! Jumping! (dp)
- 华为机试题: 求n!中含有0的个数(JAVA)
- servlet四大域总结
- windows创建添加系统变量
- zoj1234 chopsticks 经典dp