feat(邮件): 综合邮件发送

This commit is contained in:
bunny 2024-05-07 14:43:09 +08:00
parent 54870bd180
commit f6c3ee10f2
8 changed files with 54 additions and 58 deletions

View File

@ -28,6 +28,10 @@
<artifactId>jaxb-api</artifactId> <artifactId>jaxb-api</artifactId>
<version>2.1</version> <version>2.1</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- 数据库代码生成器 - 新版 --> <!-- 数据库代码生成器 - 新版 -->
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>

View File

@ -1,4 +1,4 @@
package cn.bunny.common.email.utils; package cn.bunny.common.utils;
import cn.bunny.entity.email.EmailSend; import cn.bunny.entity.email.EmailSend;
import cn.bunny.entity.email.EmailSendInit; import cn.bunny.entity.email.EmailSendInit;
@ -11,14 +11,14 @@ import org.springframework.web.multipart.MultipartFile;
import java.util.Objects; import java.util.Objects;
public class MailSender { public class MailSenderHelper {
private final String username; private final String username;
private final JavaMailSenderImpl javaMailSender; private final JavaMailSenderImpl javaMailSender;
/** /**
* 初始化构造函数进行当前类赋值 * 初始化构造函数进行当前类赋值
*/ */
public MailSender(EmailSendInit emailSendInit) { public MailSenderHelper(EmailSendInit emailSendInit) {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost(emailSendInit.getHost()); javaMailSender.setHost(emailSendInit.getHost());
javaMailSender.setPort(emailSendInit.getPort()); javaMailSender.setPort(emailSendInit.getPort());
@ -127,4 +127,33 @@ public class MailSender {
// 发送邮件 // 发送邮件
javaMailSender.send(message); javaMailSender.send(message);
} }
/**
* 综合邮箱发送
*
* @param emailSend 邮件消息
*/
public void sendEmail(EmailSend emailSend) throws MessagingException {
// 创建 MimeMessage 对象用于发送邮件富文本或者附件
MimeMessage message = javaMailSender.createMimeMessage();
// 创建 MimeMessageHelper
MimeMessageHelper helper = new MimeMessageHelper(message, true);
// 设置发送人
helper.setFrom(username);
// 设置邮件接受者
helper.setTo(emailSend.getSendTo());
// 设置邮件主题
helper.setSubject(emailSend.getSubject());
// 设置发送消息 为富文本
helper.setText(emailSend.getMessage(), emailSend.getIsRichText());
// 设置抄送人
helper.setCc(emailSend.getCcParam().split(","));
// 邮件添加附件
MultipartFile file = emailSend.getFile();
helper.addAttachment(Objects.requireNonNull(file.getOriginalFilename()), file);
// 发送邮件
javaMailSender.send(message);
}
} }

View File

@ -15,7 +15,6 @@
<module>service-utils</module> <module>service-utils</module>
<module>common-utils</module> <module>common-utils</module>
<module>spring-security</module> <module>spring-security</module>
<module>service-mail</module>
</modules> </modules>
<dependencies> <dependencies>

View File

@ -1,33 +0,0 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.bunny</groupId>
<artifactId>common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>service-mail</artifactId>
<packaging>jar</packaging>
<name>service-mail</name>
<url>https://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 邮箱 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>cn.bunny</groupId>
<artifactId>service-utils</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -1,4 +0,0 @@
package cn.bunny.common.email.config;
public class EmailConfig {
}

View File

@ -4,17 +4,23 @@ import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
@Data @Data
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class EmailSend { public class EmailSend {
// 给谁发送
private String sendTo; private String sendTo;
// 发送主题
private String subject; private String subject;
// 是否为富文本
private Boolean isRichText;
// 发送内容
private String message; private String message;
// 抄送人
private String ccParam; private String ccParam;
private File file; // 发送的文件
private MultipartFile file;
} }

View File

@ -25,11 +25,6 @@
<artifactId>spring-security</artifactId> <artifactId>spring-security</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>cn.bunny</groupId>
<artifactId>service-mail</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- service-utils --> <!-- service-utils -->
<dependency> <dependency>
<groupId>cn.bunny</groupId> <groupId>cn.bunny</groupId>

View File

@ -1,6 +1,6 @@
package cn.bunny.service.service.impl; package cn.bunny.service.service.impl;
import cn.bunny.common.email.utils.MailSender; import cn.bunny.common.utils.MailSenderHelper;
import cn.bunny.entity.email.EmailSend; import cn.bunny.entity.email.EmailSend;
import cn.bunny.entity.email.EmailSendInit; import cn.bunny.entity.email.EmailSendInit;
import cn.bunny.service.service.EmailService; import cn.bunny.service.service.EmailService;
@ -25,8 +25,8 @@ public class EmailServiceImpl implements EmailService {
emailSendInit.setPort(465); emailSendInit.setPort(465);
emailSendInit.setUsername("3324855376@qq.com"); emailSendInit.setUsername("3324855376@qq.com");
emailSendInit.setPassword("axyqbvfuxkdqdaai"); emailSendInit.setPassword("axyqbvfuxkdqdaai");
MailSender mailSender = new MailSender(emailSendInit); MailSenderHelper mailSenderHelper = new MailSenderHelper(emailSendInit);
mailSender.sendSimpleEmail(emailSend); mailSenderHelper.sendSimpleEmail(emailSend);
} }
/** /**
@ -44,8 +44,8 @@ public class EmailServiceImpl implements EmailService {
emailSendInit.setUsername("3324855376@qq.com"); emailSendInit.setUsername("3324855376@qq.com");
emailSendInit.setPassword("axyqbvfuxkdqdaai"); emailSendInit.setPassword("axyqbvfuxkdqdaai");
MailSender mailSender = new MailSender(emailSendInit); MailSenderHelper mailSenderHelper = new MailSenderHelper(emailSendInit);
mailSender.sendAttachmentEmail(emailSend, file, true); mailSenderHelper.sendAttachmentEmail(emailSend, file, true);
return true; return true;
} catch (MessagingException e) { } catch (MessagingException e) {
return false; return false;
@ -67,8 +67,8 @@ public class EmailServiceImpl implements EmailService {
emailSendInit.setUsername("3324855376@qq.com"); emailSendInit.setUsername("3324855376@qq.com");
emailSendInit.setPassword("axyqbvfuxkdqdaai"); emailSendInit.setPassword("axyqbvfuxkdqdaai");
MailSender mailSender = new MailSender(emailSendInit); MailSenderHelper mailSenderHelper = new MailSenderHelper(emailSendInit);
mailSender.sendRichText(emailSend, true); mailSenderHelper.sendRichText(emailSend, true);
return true; return true;
} catch (MessagingException e) { } catch (MessagingException e) {
return false; return false;
@ -89,8 +89,8 @@ public class EmailServiceImpl implements EmailService {
emailSendInit.setUsername("3324855376@qq.com"); emailSendInit.setUsername("3324855376@qq.com");
emailSendInit.setPassword("axyqbvfuxkdqdaai"); emailSendInit.setPassword("axyqbvfuxkdqdaai");
MailSender mailSender = new MailSender(emailSendInit); MailSenderHelper mailSenderHelper = new MailSenderHelper(emailSendInit);
mailSender.sendCC(emailSend, true); mailSenderHelper.sendCC(emailSend, true);
return true; return true;
} catch (MessagingException e) { } catch (MessagingException e) {
return false; return false;