2 changed files with 109 additions and 0 deletions
@ -0,0 +1,24 @@ |
|||||
|
package bc.core.bcmail.service; |
||||
|
|
||||
|
|
||||
|
import bc.core.bcmail.bean.Mail; |
||||
|
|
||||
|
public interface SendMailService { |
||||
|
|
||||
|
/** |
||||
|
* 简单文本邮件 |
||||
|
* |
||||
|
* @param mailRequest |
||||
|
* @return |
||||
|
*/ |
||||
|
void sendSimpleMail(Mail mailRequest); |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* Html格式邮件,可带附件 |
||||
|
* |
||||
|
* @param mailRequest |
||||
|
* @return |
||||
|
*/ |
||||
|
void sendHtmlMail(Mail mailRequest); |
||||
|
} |
||||
@ -0,0 +1,85 @@ |
|||||
|
package bc.core.bcmail.service.impl; |
||||
|
|
||||
|
import bc.core.bcmail.bean.Mail; |
||||
|
import bc.core.bcmail.controller.GlobalErrorController; |
||||
|
import bc.core.bcmail.service.SendMailService; |
||||
|
import org.apache.commons.logging.Log; |
||||
|
import org.apache.commons.logging.LogFactory; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.beans.factory.annotation.Value; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.util.Assert; |
||||
|
|
||||
|
@Service |
||||
|
public class SendMailServiceImpl implements SendMailService { |
||||
|
|
||||
|
//注入邮件工具类
|
||||
|
@Autowired |
||||
|
private JavaMailSender javaMailSender; |
||||
|
|
||||
|
@Value("${spring.mail.username}") |
||||
|
private String sendMailer; |
||||
|
|
||||
|
//日志初始化
|
||||
|
private static final Log logger = LogFactory.getLog(SendMailServiceImpl.class); |
||||
|
//private static final Logger logger = LoggerFactory.getLogger(SendMailServiceImpl.class);
|
||||
|
|
||||
|
public void checkMail(Mail mailRequest) { |
||||
|
Assert.notNull(mailRequest,"邮件请求不能为空"); |
||||
|
Assert.notNull(mailRequest.getSendTo(), "邮件收件人不能为空"); |
||||
|
Assert.notNull(mailRequest.getSubject(), "邮件主题不能为空"); |
||||
|
Assert.notNull(mailRequest.getText(), "邮件收件人不能为空"); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void sendSimpleMail(Mail mailRequest) { |
||||
|
SimpleMailMessage message = new SimpleMailMessage(); |
||||
|
checkMail(mailRequest); |
||||
|
//邮件发件人
|
||||
|
message.setFrom(sendMailer); |
||||
|
//邮件收件人 1或多个
|
||||
|
message.setTo(mailRequest.getSendTo().split(",")); |
||||
|
//邮件主题
|
||||
|
message.setSubject(mailRequest.getSubject()); |
||||
|
//邮件内容
|
||||
|
message.setText(mailRequest.getText()); |
||||
|
//邮件发送时间
|
||||
|
message.setSentDate(new Date()); |
||||
|
|
||||
|
javaMailSender.send(message); |
||||
|
logger.info("发送邮件成功:{}->{}",sendMailer,mailRequest.getSendTo()); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
@Override |
||||
|
public void sendHtmlMail(MailRequest mailRequest) { |
||||
|
MimeMessage message = javaMailSender.createMimeMessage(); |
||||
|
checkMail(mailRequest); |
||||
|
try { |
||||
|
MimeMessageHelper helper = new MimeMessageHelper(message,true); |
||||
|
//邮件发件人
|
||||
|
helper.setFrom(sendMailer); |
||||
|
//邮件收件人 1或多个
|
||||
|
helper.setTo(mailRequest.getSendTo().split(",")); |
||||
|
//邮件主题
|
||||
|
helper.setSubject(mailRequest.getSubject()); |
||||
|
//邮件内容
|
||||
|
helper.setText(mailRequest.getText(),true); |
||||
|
//邮件发送时间
|
||||
|
helper.setSentDate(new Date()); |
||||
|
|
||||
|
String filePath = mailRequest.getFilePath(); |
||||
|
if (StringUtils.hasText(filePath)) { |
||||
|
FileSystemResource file = new FileSystemResource(new File(filePath)); |
||||
|
String fileName = filePath.substring(filePath.lastIndexOf(File.separator)); |
||||
|
helper.addAttachment(fileName,file); |
||||
|
} |
||||
|
javaMailSender.send(message); |
||||
|
logger.info("发送邮件成功:{}->{}",sendMailer,mailRequest.getSendTo()); |
||||
|
} catch (MessagingException e) { |
||||
|
logger.error("发送邮件时发生异常!",e); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
Loading…
Reference in new issue