|
@@ -0,0 +1,95 @@
|
|
|
+package com.example.common.Util;
|
|
|
+
|
|
|
+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;
|
|
|
+import org.springframework.messaging.MessagingException;
|
|
|
+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;
|
|
|
+
|
|
|
+@Component
|
|
|
+public class MailUtils {
|
|
|
+ @Value("${spring.mail.username}")
|
|
|
+ private String sendEmail;
|
|
|
+
|
|
|
+ public String buildContent(String template, List<String> values) {
|
|
|
+ //加载邮件html模板
|
|
|
+ ClassPathResource resource = new ClassPathResource(template);
|
|
|
+ InputStream inputStream = null;
|
|
|
+ BufferedReader fileReader = null;
|
|
|
+ StringBuffer buffer = new StringBuffer();
|
|
|
+ String line;
|
|
|
+ try {
|
|
|
+ inputStream = resource.getInputStream();
|
|
|
+ fileReader = new BufferedReader(new InputStreamReader(inputStream));
|
|
|
+ while ((line = fileReader.readLine()) != null) {
|
|
|
+ buffer.append(line);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ //log.info("发送邮件读取模板失败{}", e);
|
|
|
+ } finally {
|
|
|
+ if (fileReader != null) {
|
|
|
+ try {
|
|
|
+ fileReader.close();
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (inputStream != null) {
|
|
|
+ try {
|
|
|
+ inputStream.close();
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ String[] arr = values.toArray(new String[values.size()]);
|
|
|
+ //替换html模板中的参数
|
|
|
+ return MessageFormat.format(buffer.toString(),arr);
|
|
|
+ }
|
|
|
+ @Autowired
|
|
|
+ private JavaMailSender javaMailSender;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 向用户邮箱发送短信
|
|
|
+ *
|
|
|
+ * @param map 收件人邮箱
|
|
|
+ */
|
|
|
+ public void sendEmailMessage(Map<String,Object> map) {
|
|
|
+ MimeMessage message = javaMailSender.createMimeMessage();
|
|
|
+ try {
|
|
|
+ //邮箱发送内容组成
|
|
|
+ FileSystemResource img = new FileSystemResource(new File(System.getProperty("user.dir") + map.get("img")));
|
|
|
+ MimeMessageHelper helper = new MimeMessageHelper(message, true);
|
|
|
+ helper.setSubject(map.get("title").toString());
|
|
|
+ Set<String> keys = map.keySet();
|
|
|
+ List<String> values = new ArrayList<>();
|
|
|
+ for(String key:keys){
|
|
|
+ if(key.contains("value")){
|
|
|
+ values.add(map.get(key).toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ helper.setText(buildContent(map.get("template").toString(), values), true);
|
|
|
+ helper.setTo(map.get("email").toString());
|
|
|
+ helper.addInline("logo", img);
|
|
|
+ helper.setFrom(sendEmail);
|
|
|
+ javaMailSender.send(message);
|
|
|
+ } catch (MessagingException | javax.mail.MessagingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|