pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/constant/UserOperation.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/controller/MailController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/MailService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/util/MailUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/config/application-dev.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/config/application-prod.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -200,6 +200,10 @@ <scope>system</scope> <systemPath>${pom.basedir}/src/main/resources/lib/aspose-words-22.3-jdk16.jar</systemPath> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> </dependencies> <build> src/main/java/com/whyc/constant/UserOperation.java
@@ -26,7 +26,10 @@ TYPE_PARAM_CHANGE(32,"参数变更"), TYPE_PASSWORD_CHANGE(33,"密码修改"), TYPE_LOGIN_TIMEOUT(34,"登录超时"), TYPE_LOGIN_NO_PASS(35,"登录系统-用户ID登录"); TYPE_LOGIN_NO_PASS(35,"登录系统-用户ID登录"), /**自定义的日志类型*/ TYPE_SEND_MAIL(41,"邮件发送"); private Integer type; src/main/java/com/whyc/controller/MailController.java
@@ -11,6 +11,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.mail.MessagingException; @RestController @RequestMapping("mail") @Api(tags = "邮件") @@ -21,7 +23,7 @@ @ApiOperation("发送邮件") @PostMapping("sendMail") public Response sendMail(@RequestBody MailDTO mailDTO){ public Response sendMail(@RequestBody MailDTO mailDTO) throws MessagingException { service.sendMail(mailDTO); return new Response().set(1,null,"发送完成"); } src/main/java/com/whyc/service/MailService.java
@@ -1,13 +1,42 @@ package com.whyc.service; import com.whyc.constant.UserOperation; import com.whyc.dto.MailDTO; import com.whyc.util.ActionUtil; import com.whyc.util.MailUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.mail.MessagingException; import java.util.List; @Service public class MailService { @Autowired private MailUtil mailUtil; public void sendMail(MailDTO mailDTO) { @Autowired private DocLogService logService; @Transactional public void sendMail(MailDTO mailDTO) throws MessagingException { Long uId = ActionUtil.getUser().getId(); String name=ActionUtil.getUser().getName(); mailUtil.sendMailBatch(name,mailDTO.getMailList(),mailDTO.getTitle(),mailDTO.getContent()); //日志 StringBuilder mailUserStr = new StringBuilder(); List<String> mailList = mailDTO.getMailList(); for (int i = 0; i < mailList.size(); i++) { if(i==0){ mailUserStr.append(mailList.get(i)); }else{ mailUserStr.append(","+mailList.get(i)); } } String msgDetail = "发送给邮箱"+mailUserStr+",标题为:"+mailDTO.getTitle()+",内容为:"+mailDTO.getContent(); logService.record(uId,name, UserOperation.TYPE_SEND_MAIL.getType(),"邮件发送",msgDetail); } } src/main/java/com/whyc/util/MailUtil.java
New file @@ -0,0 +1,113 @@ package com.whyc.util; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Component; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.File; import java.util.List; @Component public class MailUtil { @Value("${spring.mail.username}") String from; @Autowired JavaMailSender mailSender; //简单邮件 public void sendSimpleMail(String to, String subject, String content){ SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); //发件人 message.setTo(to);//收件人 message.setSubject(subject); //标题 message.setText(content); //文件内容 try { mailSender.send(message); System.out.println("简单邮件发送成功!"); } catch (Exception e){ System.out.println("发送简单邮件时发生异常!"+e); } } //简单邮件 public void sendMailBatch(String name, List<String> toList, String subject, String content) throws MessagingException { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message,false); helper.setFrom(from); //发件人 String[] toArr = toList.toArray(new String[toList.size()]); helper.setTo(toArr);//收件人 helper.setSubject(subject); //标题 helper.setText("邮件来自图纸管理平台账户:"+name+",内容为:"+content); //文件内容 mailSender.send(message); } //html格式邮件 public void sendHtmlMail(String to, String subject, String content){ MimeMessage message = mailSender.createMimeMessage(); try { //true表示需要创建一个multipart message MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(from); helper.setTo(to); helper.setSubject(subject); helper.setText(content, true); mailSender.send(message); System.out.println("html邮件发送成功!"); } catch (MessagingException e) { System.out.println("发送html邮件时发生异常!"+e); } } //带附件的邮件 public void sendAttachmentsMail(String to, String subject, String content, String filePath){ MimeMessage message = mailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(from); helper.setTo(to); helper.setSubject(subject); helper.setText(content, true); FileSystemResource file = new FileSystemResource(new File(filePath)); String fileName = filePath.substring(filePath.lastIndexOf(File.separator)); helper.addAttachment(fileName, file); mailSender.send(message); System.out.println("带附件的邮件已经发送。"); } catch (MessagingException e) { System.out.println("发送带附件的邮件时发生异常!" + e); } } //带静态资源的邮件 public void sendInlineResourceMail(String to, String subject, String content, String rscPath, String rscId){ MimeMessage message = mailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(from); helper.setTo(to); helper.setSubject(subject); helper.setText(content, true); FileSystemResource res = new FileSystemResource(new File(rscPath)); helper.addInline(rscId, res); mailSender.send(message); System.out.println("嵌入静态资源的邮件已经发送。"); } catch (MessagingException e) { System.out.println("发送嵌入静态资源的邮件时发生异常!" + e); } } } src/main/resources/config/application-dev.yml
@@ -28,6 +28,12 @@ multipart: max-file-size: 200MB max-request-size: 200MB mail: host: smtp.163.com port: username: whyc_doc@163.com password: JAMKMEQUOAGGMSVV default-encoding: UTF-8 mybatis-plus: typeAliasesPackage: com.whyc.pojo,com.whyc.dto mapper-locations: classpath:mapper/**/*Mapper.xml src/main/resources/config/application-prod.yml
@@ -28,6 +28,12 @@ multipart: max-file-size: 200MB max-request-size: 200MB mail: host: smtp.163.com port: username: whyc_doc@163.com password: JAMKMEQUOAGGMSVV default-encoding: UTF-8 mybatis-plus: typeAliasesPackage: com.whyc.pojo,com.whyc.dto mapper-locations: classpath:mapper/**/*Mapper.xml