add 用户增加邮箱密码字段,发送邮箱改为查询发件人的邮箱,没有邮箱或邮箱密码时,默认使用admin的邮箱
This commit is contained in:
+50
-21
@@ -11,18 +11,20 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.mail.javamail.JavaMailSender;
|
||||
import org.springframework.mail.javamail.JavaMailSenderImpl;
|
||||
import org.springframework.mail.javamail.MimeMessageHelper;
|
||||
import javax.mail.MessagingException;
|
||||
import javax.mail.internet.MimeMessage;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class EmailSendMsgHandle implements ISendMsgHandle {
|
||||
static String emailFrom;
|
||||
private String email;
|
||||
private String emailPassword;
|
||||
private String host;
|
||||
|
||||
@Autowired
|
||||
private Environment env;
|
||||
@@ -31,24 +33,46 @@ public class EmailSendMsgHandle implements ISendMsgHandle {
|
||||
EmailSendMsgHandle.emailFrom = emailFrom;
|
||||
}
|
||||
|
||||
public EmailSendMsgHandle() {
|
||||
}
|
||||
|
||||
public EmailSendMsgHandle(String email, String emailPassword) {
|
||||
this.email = email;
|
||||
this.emailPassword = emailPassword;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void SendMsg(String es_receiver, String es_title, String es_content) {
|
||||
JavaMailSender mailSender = (JavaMailSender) SpringContextUtils.getBean("mailSender");
|
||||
|
||||
//创建实例
|
||||
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
|
||||
//设置发送的服务器(这里的属性 qq和网易的不一样)qq:smtp.qq.com 网易:smtp.126.com
|
||||
StaticConfig staticConfig = SpringContextUtils.getBean(StaticConfig.class);
|
||||
mailSender.setHost(staticConfig.getHost());
|
||||
//当前发送人邮箱(也就是自己)
|
||||
mailSender.setUsername(email);
|
||||
//授权码 (不是邮箱密码 是上面咱们的准备工作获取的那个码)
|
||||
mailSender.setPassword(emailPassword);
|
||||
//设置端口(这里用465、默认的25 在阿里云服务器上未开放,推荐我们设置465)
|
||||
mailSender.setPort(25);
|
||||
|
||||
MimeMessage message = mailSender.createMimeMessage();
|
||||
MimeMessageHelper helper = null;
|
||||
//update-begin-author:taoyan date:20200811 for:配置类数据获取
|
||||
if(oConvertUtils.isEmpty(emailFrom)){
|
||||
StaticConfig staticConfig = SpringContextUtils.getBean(StaticConfig.class);
|
||||
setEmailFrom(staticConfig.getEmailFrom());
|
||||
}
|
||||
//update-end-author:taoyan date:20200811 for:配置类数据获取
|
||||
try {
|
||||
helper = new MimeMessageHelper(message, true);
|
||||
// 设置发送方邮箱地址
|
||||
helper.setFrom(emailFrom);
|
||||
//这里的utf-8解决 邮件 内容乱码
|
||||
MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");
|
||||
//当前发送人邮箱(也就是自己)
|
||||
helper.setFrom(email);
|
||||
//发送到的邮箱地址
|
||||
helper.setTo(es_receiver);
|
||||
//邮件主题、标题
|
||||
helper.setSubject(es_title);
|
||||
//类容
|
||||
helper.setText(es_content, true);
|
||||
//这里赋值的是附件及名称 attachmentsMailNameDispose
|
||||
//helper.addAttachment(attachmentsMailNameDispose(uploadPDF), file);
|
||||
//多个这样创建
|
||||
// helper.addAttachment(attachmentsMailNameDispose(uploadEXECL), file);
|
||||
// helper.addAttachment(attachmentsMailNameDispose(uploadCAD), file);
|
||||
mailSender.send(message);
|
||||
} catch (MessagingException e) {
|
||||
e.printStackTrace();
|
||||
@@ -67,14 +91,19 @@ public class EmailSendMsgHandle implements ISendMsgHandle {
|
||||
* @Exception
|
||||
*/
|
||||
public void SendMsgAndFile(String es_receiver, String es_title, String es_content, List<String> fileList) {
|
||||
JavaMailSender mailSender = (JavaMailSender) SpringContextUtils.getBean("mailSender");
|
||||
//创建实例
|
||||
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
|
||||
//设置发送的服务器(这里的属性 qq和网易的不一样)qq:smtp.qq.com 网易:smtp.126.com
|
||||
StaticConfig staticConfig = SpringContextUtils.getBean(StaticConfig.class);
|
||||
mailSender.setHost(staticConfig.getHost());
|
||||
//当前发送人邮箱(也就是自己)
|
||||
mailSender.setUsername(email);
|
||||
//授权码 (不是邮箱密码 是上面咱们的准备工作获取的那个码)
|
||||
mailSender.setPassword(emailPassword);
|
||||
//设置端口(这里用465、默认的25 在阿里云服务器上未开放,推荐我们设置465)
|
||||
mailSender.setPort(25);
|
||||
MimeMessage message = mailSender.createMimeMessage();
|
||||
MimeMessageHelper helper = null;
|
||||
//update-begin-author:taoyan date:20200811 for:配置类数据获取
|
||||
if(oConvertUtils.isEmpty(emailFrom)){
|
||||
StaticConfig staticConfig = SpringContextUtils.getBean(StaticConfig.class);
|
||||
setEmailFrom(staticConfig.getEmailFrom());
|
||||
}
|
||||
if(CollectionUtils.isEmpty(fileList)){
|
||||
throw new JeroBootException("附件不能为空!");
|
||||
}
|
||||
@@ -93,10 +122,10 @@ public class EmailSendMsgHandle implements ISendMsgHandle {
|
||||
ArrayList<String> mailList = new ArrayList<>(Arrays.asList(es_receiver.split(",")));
|
||||
for (String mail:mailList){
|
||||
if(!StringUtils.isBlank(mail)) {
|
||||
helper = new MimeMessageHelper(message, true);
|
||||
helper = new MimeMessageHelper(message, true,"utf-8");
|
||||
// 设置发送方邮箱地址
|
||||
helper.setTo(es_receiver);
|
||||
helper.setFrom(emailFrom);
|
||||
helper.setFrom(email);
|
||||
helper.setSubject(es_title);
|
||||
helper.setText(es_content, true);
|
||||
for(String file :fileList) {
|
||||
|
||||
+3
-1
@@ -346,10 +346,12 @@ public class SysUserController {
|
||||
} else {
|
||||
SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class);
|
||||
String email;
|
||||
String emailPassword;
|
||||
String phone;
|
||||
try {
|
||||
//1:先用私钥解密数据
|
||||
email = CommonUtils.decryptBtRsaPriKey(user.getEmail(), rsaPrivateKey);
|
||||
emailPassword = CommonUtils.decryptBtRsaPriKey(user.getEmailPassword(), rsaPrivateKey);
|
||||
phone = CommonUtils.decryptBtRsaPriKey(user.getPhone(), rsaPrivateKey);
|
||||
} catch (Exception e) {
|
||||
throw new JeroBootException("解密失败!",e);
|
||||
@@ -361,7 +363,7 @@ public class SysUserController {
|
||||
//3:把数据加密在放回来
|
||||
user.setEmail(PasswordUtil.encrypt(email));
|
||||
user.setPhone(PasswordUtil.encrypt(phone));
|
||||
|
||||
user.setEmailPassword(PasswordUtil.encrypt(emailPassword));
|
||||
user.setUpdateTime(new Date());
|
||||
//String passwordEncode = PasswordUtil.encrypt(user.getUsername(), user.getPassword(), sysUser.getSalt());
|
||||
user.setPassword(sysUser.getPassword());
|
||||
|
||||
@@ -208,4 +208,10 @@ public class SysUser implements Serializable {
|
||||
@ApiModelProperty(value = "确认密码")
|
||||
@TableField(exist = false)
|
||||
private String verifyPassword;
|
||||
|
||||
/**
|
||||
* 邮箱授权码
|
||||
*/
|
||||
@ApiModelProperty(value = "邮箱授权码")
|
||||
private String emailPassword;
|
||||
}
|
||||
|
||||
@@ -25,6 +25,10 @@ public class UserUtil {
|
||||
if (StringUtils.isNotBlank(phone)){
|
||||
record.setPhone(PasswordUtil.decrypt(phone));
|
||||
}
|
||||
String emailPassword = record.getEmailPassword();
|
||||
if (StringUtils.isNotBlank(emailPassword)) {
|
||||
record.setEmailPassword(PasswordUtil.decrypt(emailPassword));
|
||||
}
|
||||
//接口调用查询返回结果不能返回密码相关信息
|
||||
record.setSalt("");
|
||||
record.setPassword("");
|
||||
@@ -46,5 +50,9 @@ public class UserUtil {
|
||||
if (StringUtils.isNotBlank(phone)){
|
||||
record.setPhone(PasswordUtil.encrypt(phone));
|
||||
}
|
||||
String emailPassword = record.getEmailPassword();
|
||||
if (StringUtils.isNotBlank(emailPassword)) {
|
||||
record.setEmailPassword(PasswordUtil.decrypt(emailPassword));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user