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>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- 数据库代码生成器 - 新版 -->
<dependency>
<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.EmailSendInit;
@ -11,14 +11,14 @@ import org.springframework.web.multipart.MultipartFile;
import java.util.Objects;
public class MailSender {
public class MailSenderHelper {
private final String username;
private final JavaMailSenderImpl javaMailSender;
/**
* 初始化构造函数进行当前类赋值
*/
public MailSender(EmailSendInit emailSendInit) {
public MailSenderHelper(EmailSendInit emailSendInit) {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost(emailSendInit.getHost());
javaMailSender.setPort(emailSendInit.getPort());
@ -127,4 +127,33 @@ public class MailSender {
// 发送邮件
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>common-utils</module>
<module>spring-security</module>
<module>service-mail</module>
</modules>
<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.Data;
import lombok.NoArgsConstructor;
import java.io.File;
import org.springframework.web.multipart.MultipartFile;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class EmailSend {
// 给谁发送
private String sendTo;
// 发送主题
private String subject;
// 是否为富文本
private Boolean isRichText;
// 发送内容
private String message;
// 抄送人
private String ccParam;
private File file;
// 发送的文件
private MultipartFile file;
}

View File

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

View File

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