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