不允许使用邮箱名称。 服务器响应为:authentication is required

您所在的位置:网站首页 发邮件时邮箱名写错会提示么 不允许使用邮箱名称。 服务器响应为:authentication is required

不允许使用邮箱名称。 服务器响应为:authentication is required

2024-07-11 15:24| 来源: 网络整理| 查看: 265

背景:本着全心全意为人民服务的理念,成绩系统上次验收提出来新的想法:教师留的作业学生没有及时上交,需要老师进行提醒。那么问题来了:提醒的方式有很多种,邮件,短信等等,权限系统验收的时候使用了邮箱,经过交流后才知道,用邮箱的好处是,邮箱的接口是免费的,而且比较稳定,短信的接口需要花钱,不同的运行商不同的接口,比较麻烦。权衡两者,先决定使用邮箱,后期有需要再使用短信。

一、问题出世

    验收完成后,找到权限系统注册这块儿的负责人进行交流,丽敏告诉我方法,接下来就是我自己的实践,代码很简单,经过我的一番修修改改,终于能算得上是一个功能了。

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 /// /// 实现邮件发送的一个过程 /// /// 邮件服务器smtp.163.com表示网易邮箱服务器 /// 端口号(通常网易和qq为25) /// 发送端账号 /// 发送端密码 /// 发送端账号 /// 注册的邮箱号 /// 邮箱的主题 /// 发送的邮件正文 /// 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 /// /// 默认设置发送邮件的初始值 /// /// public ActionResult SendTEmail() { string smtpServer = "smtp.163.com"; // 邮件服务器smtp.163.com表示网易邮箱服务器 string smptport = "25"; //端口号(通常网易和qq为25) string userName = "[email protected]"; // 发送端账号 string pwd = "666666"; // 发送端密码(这个客户端重置后的密码) string strFrom = "[email protected]"; // 发送端账号 string strto = "[email protected]"; // 注册的邮箱号 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、未来的软件越来越人性化,越来越开源。想像一下,人人都能使用“东拼西凑”的方法,自己亲手组装出一个功能齐全而且强大的软件,那该是多么开心的一件事呀。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3