From c76a8639baab1f082c78ca4415cbdd8526c825ad Mon Sep 17 00:00:00 2001
From: xjs <1294405880@qq.com>
Date: Fri, 15 Apr 2022 14:14:51 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8F=91?=
=?UTF-8?q?=E9=80=81=E9=82=AE=E4=BB=B6=E6=B7=BB=E5=8A=A0=E9=99=84=E4=BB=B6?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=9E=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/ruoyi/auth/aop/LoginAspect.java | 4 +-
.../src/views/business/tools/mail/send.vue | 66 +++++++++++++++----
xjs-business/xjs-business-warning/pom.xml | 12 ++++
.../com/xjs/controller/MailController.java | 5 +-
.../java/com/xjs/domain/mall/MailBean.java | 8 +++
.../main/java/com/xjs/domain/mall/MailVo.java | 40 +++--------
.../main/java/com/xjs/server/MailServer.java | 34 +++++++---
7 files changed, 112 insertions(+), 57 deletions(-)
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/aop/LoginAspect.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/aop/LoginAspect.java
index 10041081..26f19988 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/aop/LoginAspect.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/aop/LoginAspect.java
@@ -1,5 +1,6 @@
package com.ruoyi.auth.aop;
+import cn.hutool.core.date.DateUtil;
import com.ruoyi.system.api.model.LoginUser;
import com.xjs.business.warning.RemoteMailFeign;
import com.xjs.business.warning.domain.MailBean;
@@ -49,7 +50,8 @@ public class LoginAspect {
mailBean.setRecipient(loginUser.getSysUser().getEmail());
mailBean.setContent("
" + loginUser.getSysUser().getNickName() + "上线啦
" +
"
" +
- " 当前IP地址:" + loginUser.getSysUser().getLoginIp() + "
");
+ " 当前IP地址:" + loginUser.getSysUser().getLoginIp() + "
" +
+ "上线时间:"+ DateUtil.now() +"
");
remoteMailFeign.sendMailForRPC(mailBean);
}
diff --git a/ruoyi-ui/src/views/business/tools/mail/send.vue b/ruoyi-ui/src/views/business/tools/mail/send.vue
index 33505630..3a221aff 100644
--- a/ruoyi-ui/src/views/business/tools/mail/send.vue
+++ b/ruoyi-ui/src/views/business/tools/mail/send.vue
@@ -32,6 +32,22 @@
+
+
+
+ 添加附件
+
+
+
+
@@ -70,8 +86,7 @@ export default {
recipient: undefined,
recipientSuffix: undefined,
content: undefined,
-
-
+ file:[]
},
rules: {
@@ -94,6 +109,8 @@ export default {
]
},
+ fileList: [],
+
}
},
@@ -111,25 +128,50 @@ export default {
this.$refs['elForm'].validate(valid => {
if (!valid) return
- let data = {
- subject: this.formData.subject,
- recipient: this.formData.recipient + this.formData.recipientSuffix,
- content: this.formData.content
+ let formData = new FormData();
+ let files = this.formData.file;
+ for (let i = 0; i < files.length; i++) {
+ formData.append("fileList", files[i]);
}
- this.$modal.loading("请稍后...")
- sendMail(data).then(res => {
+ formData.append("subject", this.formData.subject);
+ formData.append("content", this.formData.content);
+ formData.append("recipient", this.formData.recipient + this.formData.recipientSuffix);
+
+ this.$modal.loading("正在发送,请稍后...")
+ sendMail(formData).then(res => {
this.$modal.notifySuccess("发送成功")
this.$modal.closeLoading()
- this.formData.subject=""
- this.formData.recipient=""
- this.formData.recipientSuffix=""
- }).catch(err =>{
+ this.formData.subject = ""
+ this.formData.recipient = ""
+ this.formData.recipientSuffix = ""
+ }).catch(err => {
this.$modal.closeLoading()
})
})
},
+
+ addFile() {
+
+ },
+
+ //上传文件之前
+ beforeUpload(file) {
+ console.log(file)
+ this.formData.file.push(file)
+ },
+
+ //删除文件之前
+ beforeRemove(file) {
+ let fileList =this.formData.file
+ for (let i = 0; i < fileList.length; i++) {
+ if (fileList[i].uid===file.uid) {
+ fileList.splice(i,1)
+ }
+ }
+ },
+
}
}
diff --git a/xjs-business/xjs-business-warning/pom.xml b/xjs-business/xjs-business-warning/pom.xml
index 77c05298..2c0c555c 100644
--- a/xjs-business/xjs-business-warning/pom.xml
+++ b/xjs-business/xjs-business-warning/pom.xml
@@ -9,6 +9,18 @@
4.0.0
业务模块-预警模块
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 9
+ 9
+
+
+
+
xjs-business-warning
diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/MailController.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/MailController.java
index feacaf93..25c40135 100644
--- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/MailController.java
+++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/MailController.java
@@ -31,10 +31,11 @@ public class MailController {
@PostMapping("send-mail")
@ApiOperation("发送邮件")
@Log(title = "发送邮件", businessType = BusinessType.INSERT)
- public AjaxResult sendMail(@RequestBody MailVo mailVo) {
+ public AjaxResult sendMail(MailVo mailVo) {
MailBean mailBean = new MailBean();
BeanUtils.copyProperties(mailVo, mailBean);
- mailBean.setMailType(MailBean.MailType.HTML);
+ mailBean.setMailType(MailBean.MailType.ATTACHMENT);
+
mailService.sendMail(mailBean);
return AjaxResult.success();
}
diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailBean.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailBean.java
index bbd48f32..708c53d2 100644
--- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailBean.java
+++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailBean.java
@@ -1,6 +1,7 @@
package com.xjs.domain.mall;
import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
@@ -38,6 +39,13 @@ public class MailBean implements Serializable {
*/
private String absolutePath;
+ /**
+ * 文件列表
+ */
+ private MultipartFile[] fileList;
+
+
+
/**
* 邮件发送类型
*/
diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailVo.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailVo.java
index a6ca329a..e5ec1128 100644
--- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailVo.java
+++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailVo.java
@@ -1,5 +1,8 @@
package com.xjs.domain.mall;
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
import java.io.Serializable;
/**
@@ -7,7 +10,7 @@ import java.io.Serializable;
* @author xiejs
* @since 2022-04-14
*/
-
+@Data
public class MailVo implements Serializable {
private static final long serialVersionUID = -1L;
@@ -24,36 +27,9 @@ public class MailVo implements Serializable {
*/
private String content;
- @Override
- public String toString() {
- return "MailVo{" +
- "recipient='" + recipient + '\'' +
- ", subject='" + subject + '\'' +
- ", content='" + content + '\'' +
- '}';
- }
-
- public String getRecipient() {
- return recipient;
- }
-
- public void setRecipient(String recipient) {
- this.recipient = recipient;
- }
-
- public String getSubject() {
- return subject;
- }
-
- public void setSubject(String subject) {
- this.subject = subject;
- }
-
- public String getContent() {
- return content;
- }
+ /**
+ * 文件列表
+ */
+ private MultipartFile[] fileList;
- public void setContent(String content) {
- this.content = content;
- }
}
diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java
index f8170ca9..6058d4fb 100644
--- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java
+++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java
@@ -6,11 +6,13 @@ import com.xjs.domain.mall.MailBean;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.ByteArrayResource;
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 org.springframework.web.multipart.MultipartFile;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
@@ -18,6 +20,9 @@ import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Objects;
import java.util.concurrent.TimeUnit;
import static com.xjs.consts.RedisConst.MAIL_STATUS;
@@ -131,7 +136,7 @@ public class MailServer {
*
* @param mailBean 邮箱实体
*/
- private void sendAttachmentMail(MailBean mailBean) throws MessagingException {
+ private void sendAttachmentMail(MailBean mailBean) throws MessagingException, IOException {
MimeMessage mimeMailMessage = null;
try {
mimeMailMessage = javaMailSender.createMimeMessage();
@@ -140,15 +145,24 @@ public class MailServer {
mimeMessageHelper.setFrom(MAIL_SENDER);
mimeMessageHelper.setTo(mailBean.getRecipient());
mimeMessageHelper.setSubject(mailBean.getSubject());
- mimeMessageHelper.setText(mailBean.getContent());
- //文件路径 目前写死在代码中,之后可以当参数传过来,或者在MailBean中添加属性absolutePath
- FileSystemResource file = new FileSystemResource(new File(mailBean.getAbsolutePath()));
- //FileSystemResource file = new FileSystemResource(new File("src/main/resources/static/image/email.png"));
- String fileName = mailBean.getAbsolutePath().substring(mailBean.getAbsolutePath().lastIndexOf(File.separator));
- //添加附件,第一个参数表示添加到 Email 中附件的名称,第二个参数是图片资源
- mimeMessageHelper.addAttachment(fileName, file);
- //多个附件
- //mimeMessageHelper.addAttachment(fileName1, file1);
+ mimeMessageHelper.setText(mailBean.getContent(), true);
+
+ //发送附件
+ if (mailBean.getFileList() != null && mailBean.getFileList().length > 0) {
+ for (MultipartFile multipartFile : mailBean.getFileList()) {
+ InputStream inputStream = null;
+ try {
+ inputStream = multipartFile.getInputStream();
+ byte[] bytes = inputStream.readAllBytes();
+ ByteArrayResource bar = new ByteArrayResource(bytes);
+ mimeMessageHelper.addAttachment(Objects.requireNonNull(multipartFile.getOriginalFilename()), bar);
+ } finally {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ }
+ }
+ }
javaMailSender.send(mimeMailMessage);
} catch (Exception e) {