|
@@ -1,8 +1,11 @@
|
|
|
package com.example.common.Util;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.example.common.Service.outAPi.FileManagerService;
|
|
|
+import com.example.common.common.SystemFile;
|
|
|
+import com.google.gson.JsonArray;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.core.io.ClassPathResource;
|
|
|
import org.springframework.core.io.FileSystemResource;
|
|
|
import org.springframework.mail.javamail.JavaMailSender;
|
|
|
import org.springframework.mail.javamail.MimeMessageHelper;
|
|
@@ -12,15 +15,14 @@ import org.springframework.stereotype.Component;
|
|
|
import javax.mail.internet.MimeMessage;
|
|
|
import java.io.*;
|
|
|
import java.text.MessageFormat;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Component
|
|
|
public class MailUtils {
|
|
|
@Value("${spring.mail.username}")
|
|
|
private String sendEmail;
|
|
|
+ @Autowired
|
|
|
+ private FileManagerService fileManagerService;
|
|
|
|
|
|
public String buildContent(String template, List<String> values) {
|
|
|
//加载邮件html模板
|
|
@@ -78,15 +80,48 @@ public class MailUtils {
|
|
|
}
|
|
|
}
|
|
|
helper.setText(buildContent(map.get("template").toString(), values), true);
|
|
|
- helper.setTo(map.get("email").toString());
|
|
|
+ if (map.get("emails") != null) {
|
|
|
+ String[] emailsStrs = (String[]) map.get("emails");
|
|
|
+ helper.setTo(emailsStrs);
|
|
|
+ } else {
|
|
|
+ helper.setTo(map.get("email").toString());
|
|
|
+ }
|
|
|
if (map.get("cc") != null) {
|
|
|
- String[] ccs =(String[])map.get("cc");
|
|
|
+ String[] ccs = (String[]) map.get("cc");
|
|
|
helper.setCc(ccs);
|
|
|
}
|
|
|
|
|
|
+ if (map.get("bcc") != null) {
|
|
|
+ String[] bccs = (String[]) map.get("bcc");
|
|
|
+ helper.setBcc(bccs);
|
|
|
+ }
|
|
|
+ List<File> files = new ArrayList<>();
|
|
|
+ if (map.get("files") != null) {
|
|
|
+ String[] fileGuids = (String[]) map.get("files");
|
|
|
+ try {
|
|
|
+ String res = fileManagerService.getSystemFileFromFMS(Arrays.asList(fileGuids));
|
|
|
+ List<SystemFile> systemFiles = JSONArray.parseArray(res, SystemFile.class);
|
|
|
+ for (int i = 0; i < systemFiles.size(); i++) {
|
|
|
+ SystemFile systemFile = systemFiles.get(i);
|
|
|
+ String fileName = systemFile.getOriginalName();
|
|
|
+ String suffix = fileName.substring(fileName.lastIndexOf("."));
|
|
|
+ File file = this.fileManagerService.getFileByUrl(systemFile.getGuid(), fileName, suffix);
|
|
|
+ files.add(file);
|
|
|
+ helper.addAttachment(fileName, file);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
helper.addInline("logo", img);
|
|
|
helper.setFrom(sendEmail);
|
|
|
javaMailSender.send(message);
|
|
|
+ files.forEach(item -> {
|
|
|
+ item.delete();
|
|
|
+ });
|
|
|
} catch (MessagingException | javax.mail.MessagingException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|