SMTP,POP3,IMAP

POP3

POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。

SMTP

SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。

SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。

增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

IMAP

IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。

网易常见邮箱服务器信息:

腾讯邮箱服务器信息:stmp.qq.com

Action

public class MailAction extends ActionSupport {

private SysuserinfoService sysuserinfoService;// 用户基本信息表

private String email;

private String errorMessage;

private Sysuserinfo sysuserinfo;

/**

* 发邮件

*

* @return

*/

public String sendMail() {

System.out.println("LOG : MailAction-sendMail");

if (sysuserinfo == null) {

errorMessage = "获取用户信息失败,请返回登录界面重新尝试 !";

return "error";

}

String userId = sysuserinfo.getUserCode();

String userRole = sysuserinfo.getSysrole().getRoleCode();

Sysuserinfo userinfo = sysuserinfoService.findById(Sysuserinfo.class,

userId);

if (userinfo == null) {

errorMessage = "用户不存在,请返回登录界面重新尝试 !";

return "error";

}

// 设置邮件内容 String content = "尊敬的用户:" + userinfo.getUserName() +

String content = ".作业在线系统找回密码给你发的密码是:" + userinfo.getPassword()

+ "请注意自己的帐号安全,不要外泄密码!!";

boolean flag = false;

email = userinfo.getEmail();// 从数据库读出

if (email == null) {

errorMessage = "对不起,您还没有设置邮箱哦!";

return "error";

}

System.out.println("LOG : email = " + email);

flag = sendEmail(email, content);

if (!flag) {

errorMessage = "邮件发送过程中找不到家了!";

return "error";

}

return "success";

}

/**

* 账户:cn_edu_nwsuaf_mas@163.com 密码:cn.edu.nwsuaf 授权密码:cnedunwsuaf2017

*

* @param email

* @param content

* @return

*/

public boolean sendEmail(String email, String content) {

SimpleEmail mailUtil = new SimpleEmail();

/**

* 根据发送方设置服务器

*

*/

mailUtil.setHostName("smtp.163.com");

if (mailUtil.getHostName() == null) {

System.out.println("LOG : can not deal with the type of email!");

return false;

}

mailUtil.setAuthentication("xxxxxxxx@163.com",

"xxxxxxxx@163.com的授权码");

mailUtil.setCharset("utf-8");

try {

mailUtil.addTo(email);

mailUtil.setFrom("xxxxxxxx@163.com");

mailUtil.setSubject("subject");

mailUtil.setMsg(content);

mailUtil.send();

} catch (EmailException e) {

System.out.println("LOG : 邮件发送过程中找不到家了!");

e.printStackTrace();

return false;

}

return true;

}

Struts.xml

class="cn.edu.nwsuaf.comAction.MailAction">

/page/mail/success.jsp

/page/mail/error.jsp

/login.jsp

我的世界java邮箱和密码_java实现邮箱找密码相关推荐

  1. java邮箱找回密码_java实现邮箱找回密码 简单邮件

    首先 发件人的POP/SMTP服务要打开   发件人的密码为服务的授权码 js方法 //找回密码 function send(){ var lostemail = $("#lostemail ...

  2. java web 找回密码_java web实现 忘记密码(找回密码)功能及代码

    java web实现 忘记密码(找回密码)功能及代码 (一).总体思路 (二).部分截图 (三).部分代码 (一).总体思路: 1.在 找回密码页面 录入 姓名.邮箱和验证码,录入后点击[提交]按钮, ...

  3. java编写脚本校验修改密码_java编写一个更改密码校验程序,有两个密码框,一个用于输入新密码,另一个请输入确认密码……...

    展开全部 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JBu ...

  4. java shiro 访问频率_java shiro配置记住密码功能 RememberMe

    一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理:以此来实现记住密码的功能!使用shiro自带的RememberM ...

  5. java中修改密码_java怎样修改用户名密码?

    展开全部 package changepassword; import java.util.Scanner; public class Administrator{ String name;//姓名 ...

  6. java邮箱地址正则表达式_JAVA 电子邮箱格式验证,使用正则表达式

    正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),能够用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. ...

  7. java qq邮箱服务器端口_java qq 邮箱发送错误以及端口号

    6:sina没错误,但qq有错误?求解答案:将smtp.qq.com个人邮箱爱 改为smtp.exmail.qq.com企业邮箱,建议用企业邮相的主机名 javax.mail.Authenticati ...

  8. 我的世界java版是什么_Java版我的世界版本介绍

    Java版1.16-pre4 1.16-pre4是Java版1.16的第4个预发布版,发布于2020年6月11日.进行了一些细微修改,修复了一些漏洞. 更改 生物 骷髅 ▪将骷髅在灵魂沙峡谷中的生成权 ...

  9. 我的世界java无法连接服务器_java - 无法连接到Minecraft服务器 - SO中文参考 - www.soinside.com...

    当我尝试从此处使用Java从头开始制作的经过稍微修改的Minecraft客户端尝试连接到Minecraft服务器时,出现此错误:Minecraft原始客户端Java代码:Java sending ha ...

最新文章

  1. Deep learning前的图像预处理
  2. iOS--动画demo--Launch Image淡出效果
  3. 配置MySQL8.0
  4. Hibernate锁定模式– PESSIMISTIC_READ和PESSIMISTIC_WRITE如何工作
  5. 调用打开另外一个APK
  6. 专业的在线ps照片处理网页源码
  7. 微服务系列 —— 一小时搞定Eureka
  8. IO流 (二) ----- 文件流
  9. javascrip语言精髓与编程实践pdf_C/C 编程推荐学习顺序和书籍
  10. keil 不能F12跳转到定义
  11. 基于pandas实现K折交叉验证数据集划分
  12. 计算机科学概论第三版重点,计算机科学概论重点.doc
  13. 浅谈带宽,网速和流量之间的关系
  14. 正定矩阵的相关性质,凸锥
  15. csdn查看自己收藏的文章
  16. java的图片上传与前端展示实例(Servlet+Jsp)
  17. 桥梁远景图微型计算机教案,桥梁远景图的教案设计
  18. 企业网盘知乎用户评测:企业网盘哪个好?
  19. VideoPlayer 视频播放
  20. 案例分享 | 纽扣电池石墨片厚度及缺陷检测

热门文章

  1. SQL查询-查询所有员工的姓名及其直接上级的姓名,没有领导的员工也需要查询
  2. ESP32开发--使用NVS存储数据
  3. redisson 主从模式Unsupported protocol version 50_强推七本欢喜冤家甜文,男女主从互怼到互宠,超甜超撩超过瘾!...
  4. 基于jQuery实现表单提交验证
  5. 万全r680g7配置raid_联想万全r680g7服务器系统用户手册v1.2
  6. oracle导出dmp文件教程
  7. 查看电脑(服务器)ip地址与名称
  8. BZOJ 4946: [Noi2017]蔬菜 模拟费用流
  9. 手机上最简单的计算机,怎么把手机文件传到电脑,才最简单又快速?
  10. 我在周日凌晨执意顶着困意喝酒