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

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;
}
}
}