Java Web实现邮箱用户授权,JavaWeb中实现通过邮箱找回密码

packagecom.xxx.xxx.util;importjavax.mail.MessagingException;importjavax.mail.NoSuchProviderException;importjavax.mail.Session;importjavax.mail.Transport;importjavax.mail.internet.InternetAddress;importjavax.mail.internet.MimeMessage;importjava.util.Date;importjava.util.Properties;public classSendMail {//发件人的邮箱账号如:xxx@163.com

public static String sendEmailAccount = "xxx@163.com";//发件人的邮箱的授权码(自己在邮箱服务器中开启并设置)

public static String sendEmailPassword = "xxx";//发件人邮箱的SMTP服务器地址,如:smtp.163.com

public static String sendEmailSMTPHost = "smtp.163.com";//收件人的邮箱账号

public static String receiveMailAccount = "";//把发送邮件封装为函数,参数为收件人的邮箱账号和要发送的内容

public voidsendMail(String receiveMailAccount, String mailContent) {//创建用于连接邮件服务器的参数配置

Properties props = newProperties();//设置使用SMTP协议

props.setProperty("mail.transport.protocol", "smtp");//设置发件人的SMTP服务器地址

props.setProperty("mail.smtp.host", sendEmailSMTPHost);//设置需要验证

props.setProperty("mail.smtp.auth", "true");//Linux端口25没有开放,放弃25端口,使用ssl加密并改用465端口--此举可以兼顾window和Linux//使用ssl加密

props.setProperty("mail.smtp.ssl.enable", "true");//设置端口

props.setProperty("mail.smtp.port", "465");//根据配置创建会话对象, 用于和邮件服务器交互

Session session =Session.getInstance(props);//设置debug模式,便于查看发送过程所产生的日志

session.setDebug(true);try{//创建一封邮件

MimeMessage message =createMimeMessage(session, sendEmailAccount, receiveMailAccount, mailContent);//根据 Session 获取邮件传输对象

Transport transport =session.getTransport();

transport.connect(sendEmailAccount, sendEmailPassword);//发送邮件, 发到所有的收件地址, 通过message.getAllRecipients() 可以获取到在创建邮件对象时添加的所有收件人

transport.sendMessage(message, message.getAllRecipients());//关闭连接

transport.close();

}catch(NoSuchProviderException e) {//TODO Auto-generated catch block

e.printStackTrace();

}catch(MessagingException e) {//TODO Auto-generated catch block

e.printStackTrace();

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}/***

*@paramsession

* 和服务器交互的会话

*@paramsendMail

* 发件人邮箱

*@paramreceiveMail

* 收件人邮箱

*@return*@throwsException*/

public staticMimeMessage createMimeMessage(Session session, String sendMail, String receiveMail,

String mailContent)throwsException {//创建一封邮件

MimeMessage message = newMimeMessage(session);//设置发件人姓名和编码格式

message.setFrom(new InternetAddress(sendMail, "xxx平台", "UTF-8"));//收件人

message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "尊敬的用户", "UTF-8"));//设置邮件主题

message.setSubject("找回密码提醒", "UTF-8");//设置邮件正文

message.setContent(mailContent, "text/html;charset=UTF-8");//设置发件时间

message.setSentDate(newDate());//保存设置

message.saveChanges();returnmessage;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值