java后台发送邮件_java后台代码发送邮件

1 packagecom.liveyc.eloan.base.service.impl;2

3 importjava.util.Date;4 importjava.util.Properties;5 importjava.util.UUID;6

7 importjavax.mail.internet.MimeMessage;8

9 importorg.springframework.beans.factory.annotation.Autowired;10 importorg.springframework.beans.factory.annotation.Value;11 importorg.springframework.mail.javamail.JavaMailSenderImpl;12 importorg.springframework.mail.javamail.MimeMessageHelper;13 importorg.springframework.stereotype.Service;14

15 importcom.liveyc.eloan.base.dao.EmailverifyDao;16 importcom.liveyc.eloan.base.domain.Emailverify;17 importcom.liveyc.eloan.base.service.IEmailVerifyService;18 importcom.liveyc.eloan.base.util.DateUtil;19 importcom.liveyc.eloan.util.BidConst;20 importcom.liveyc.eloan.util.UserContext;21

22 @Service23 public class EmailVerifyServiceImpl implementsIEmailVerifyService {24

25 @Autowired26 privateEmailverifyDao emailverifyDao;27

28 @Value("${mail.host}")29 privateString host;30

31 @Value("${mail.smtpHost}")32 privateString smtpHost;33

34 @Value("${mail.username}")35 privateString username;36

37 @Value("${mail.password}")38 privateString password;39

40 /**

41 *http://localhost:8080/checkEmailBind.do?key=4f399b0b-c17b-4e9d-9abc-042 * c816cd474bb 1,得到当前用户,得到要绑定的邮箱,绑定的时间,生成一个随机码--->EmailVerify;43 * 2,发送一封邮件;在邮件的这里(http://localhost/checkEmailBind.do?key=随机码)44 */

45 @Override46 public voidsendVerifyEmail(String email) {47 Emailverify ev = newEmailverify();48 ev.setUserinfoId(UserContext.getCurrent().getId());49 ev.setEmail(email);50 ev.setSendTime(newDate());51 ev.setUuid(UUID.randomUUID().toString().replace("-", ""));52

53 //构造邮件内容

54 StringBuilder content = new StringBuilder(100)55 .append("

这是你在蓝源Eloan网站的验证邮件,请点击").append("这里").append("")58 .append("完成邮箱绑定,有效期为"+BidConst.EMAIL_VALID_DAY+"天

");59

60 System.out.println(content);61

62 try{63 sendEmail(email, "绑定邮箱验证邮件", content.toString());64 this.emailverifyDao.insert(ev);65 } catch(Exception e) {66 throw newRuntimeException(e.getMessage());67 }68 }69

70 /**

71 * 发送邮件72 *73 *@paramemail74 *@paramstring75 *@paramstring276 */

77 private voidsendEmail(String email, String subject, String content)78 throwsException {79 JavaMailSenderImpl senderImpl = newJavaMailSenderImpl();80

81 //设置发送邮件的SMTP服务器地址

82 senderImpl.setHost(smtpHost);83

84 //创建一个邮件对象

85 MimeMessage mailMessage =senderImpl.createMimeMessage();86

87 //创建邮件对象的服务类

88 MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,"UTF-8");89

90 messageHelper.setTo(email);//设置发给谁

91 messageHelper.setFrom(username);//发件人

92 messageHelper.setSubject(subject);//设置邮件标题

93 messageHelper.setText(content, true);//设置邮件内容

94

95 senderImpl.setUsername(username); //根据自己的情况,设置username

96 senderImpl.setPassword(password);//设置密码

97

98 Properties prop = newProperties();99 prop.put("mail.smtp.auth", "true");//设置发送邮件需要身份认证

100 prop.put("mail.smtp.timeout", "25000");//设置发送超时时间

101 senderImpl.setJavaMailProperties(prop);102

103 senderImpl.send(mailMessage);104 }105

106 /**

107 * 获取请求中的随机码;108 *109 * 2,根据随机码得到EmailVerify对象; 3,只需要验证时间是否超时; 4,把emailverify中的邮箱地址绑定到指定用户上;110 */

111 @Override112 publicEmailverify verifyEmail(String key) {113 Emailverify ev = this.emailverifyDao.selectByUuid(key);114 if (ev != null

115 && DateUtil.getSecondsBetweenDates(ev.getSendTime(), new Date()) <= 3600 * 24 *BidConst.EMAIL_VALID_DAY) {116 returnev;117 }118 return null;119 }120

121 }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值