You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.8 KiB
80 lines
2.8 KiB
package com.community.pocket.util;
|
|
|
|
import com.community.pocket.entity.po.EmailCode;
|
|
import com.community.pocket.entity.vo.EmailTypeConfig;
|
|
import com.community.pocket.entity.vo.web.ManagerResetPwd;
|
|
import com.community.pocket.repository.EmailDao;
|
|
import org.apache.commons.lang3.RandomStringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.mail.MailException;
|
|
import org.springframework.mail.SimpleMailMessage;
|
|
import org.springframework.mail.javamail.JavaMailSenderImpl;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
public class EmailService {
|
|
@Autowired
|
|
private JavaMailSenderImpl javaMailSender;
|
|
|
|
@Autowired
|
|
private EmailTypeConfig emailTypeConfig;
|
|
|
|
@Autowired
|
|
private EmailDao emailDao;
|
|
|
|
/**
|
|
* 发送管理员重置密码邮件
|
|
*/
|
|
public boolean sendManagerCode(ManagerResetPwd managerResetPwd) {
|
|
if (emailDao.clearEmail(managerResetPwd.getEmail() + managerResetPwd.getEmailType())) {
|
|
EmailCode emailCode = new EmailCode();
|
|
emailCode.setCode(RandomStringUtils.randomNumeric(emailTypeConfig.getLength()));
|
|
emailCode.setEmailAddress(managerResetPwd.getEmail() + managerResetPwd.getEmailType());
|
|
SimpleMailMessage message = new SimpleMailMessage();
|
|
message.setSubject(emailTypeConfig.getSubject());
|
|
message.setText(String.format(emailTypeConfig.getManagerCodeMessage(), emailCode.getCode()));
|
|
message.setTo(emailCode.getEmailAddress());
|
|
message.setFrom(emailTypeConfig.getFrom());
|
|
try {
|
|
javaMailSender.send(message);
|
|
|
|
emailDao.save(emailCode);
|
|
return true;
|
|
} catch (MailException e) {
|
|
e.printStackTrace();
|
|
return false;
|
|
}
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 发送用户重置密码邮件
|
|
* @param sender 发送目标
|
|
*
|
|
*/
|
|
public boolean sendUserCode(String sender){
|
|
if(emailDao.clearEmail(sender)) {
|
|
EmailCode emailCode = new EmailCode();
|
|
emailCode.setCode(RandomStringUtils.randomNumeric(emailTypeConfig.getLength()));
|
|
emailCode.setEmailAddress(sender);
|
|
SimpleMailMessage message = new SimpleMailMessage();
|
|
message.setSubject(emailTypeConfig.getSubject());
|
|
message.setText(String.format(emailTypeConfig.getUserCodeMessage(),emailCode.getCode()));
|
|
message.setTo(sender);
|
|
message.setFrom(emailTypeConfig.getFrom());
|
|
try {
|
|
javaMailSender.send(message);
|
|
|
|
emailDao.save(emailCode);
|
|
return true;
|
|
} catch (MailException e) {
|
|
e.printStackTrace();
|
|
return false;
|
|
}
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|