diff --git a/pom.xml b/pom.xml
index 3e515c3..d8ad049 100644
--- a/pom.xml
+++ b/pom.xml
@@ -127,6 +127,22 @@
jansi
2.4.0
+
+
+
+
+
+
+
+ com.sun.mail
+ jakarta.mail
+ 2.0.1
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+ 3.3.4
+
diff --git a/src/main/java/com/guaiguailang/harmony/config/MailConfig.java b/src/main/java/com/guaiguailang/harmony/config/MailConfig.java
new file mode 100644
index 0000000..89f6f04
--- /dev/null
+++ b/src/main/java/com/guaiguailang/harmony/config/MailConfig.java
@@ -0,0 +1,55 @@
+package com.guaiguailang.harmony.config;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.JavaMailSenderImpl;
+
+import java.util.Properties;
+@Data
+@Configuration
+@PropertySource(value = "classpath:application.properties", encoding = "UTF-8")
+public class MailConfig {
+
+ @Value("${spring.mail.host}")
+ private String host;
+
+ @Value("${spring.mail.port}")
+ private int port;
+
+ @Value("${spring.mail.username}")
+ private String username;
+
+ @Value("${spring.mail.password}")
+ private String password;
+
+ @Value("${spring.mail.default-encoding}")
+ private String defaultEncoding;
+
+ @Value("${spring.mail.protocol}")
+ private String protocol;
+
+ @Value("${spring.mail.properties.mail.debug}")
+ private String debug;
+ @Value("[和生]消息通知")
+ private String nickname;
+
+ @Bean
+ public JavaMailSender getJavaMailSender() {
+ JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
+ mailSender.setHost(host);
+ mailSender.setPort(port);
+ mailSender.setUsername(username);
+ mailSender.setPassword(password);
+ Properties props = mailSender.getJavaMailProperties();
+ props.put("mail.transport.protocol", protocol);
+ props.put("mail.smtp.auth", "true");
+ props.put("mail.smtp.starttls.enable", "false"); // 关闭STARTTLS
+ props.put("mail.debug", debug);
+ return mailSender;
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/guaiguailang/harmony/service/EmailService.java b/src/main/java/com/guaiguailang/harmony/service/EmailService.java
new file mode 100644
index 0000000..0bc4718
--- /dev/null
+++ b/src/main/java/com/guaiguailang/harmony/service/EmailService.java
@@ -0,0 +1,5 @@
+package com.guaiguailang.harmony.service;
+
+public interface EmailService {
+ void emailSend(String nickname,String to,String subject,String content);
+}
diff --git a/src/main/java/com/guaiguailang/harmony/service/impl/EmailServiceImpl.java b/src/main/java/com/guaiguailang/harmony/service/impl/EmailServiceImpl.java
new file mode 100644
index 0000000..8fafd21
--- /dev/null
+++ b/src/main/java/com/guaiguailang/harmony/service/impl/EmailServiceImpl.java
@@ -0,0 +1,38 @@
+package com.guaiguailang.harmony.service.impl;
+
+import com.guaiguailang.harmony.config.MailConfig;
+import com.guaiguailang.harmony.service.EmailService;
+import com.guaiguailang.harmony.utils.KeyBase64;
+import jakarta.mail.internet.MimeMessage;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.mail.MailProperties;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.MimeMessageHelper;
+import org.springframework.stereotype.Service;
+
+@Service
+public class EmailServiceImpl implements EmailService {
+ @Autowired
+ MailConfig mailConfig;
+
+ @Override
+ public void emailSend(String nickname,String to,String subject,String content) {
+ nickname = KeyBase64.strToBase64(nickname);
+ nickname = "=?UTF-8?B?"+nickname+"?=";
+ JavaMailSender mailSender = mailConfig.getJavaMailSender();
+ try {
+ MimeMessage ms = mailSender.createMimeMessage();
+ MimeMessageHelper msi = new MimeMessageHelper(ms,true);
+ msi.setFrom(nickname+' '+'<'+mailConfig.getUsername()+'>');//From 合法性检查 https://service.mail.qq.com/detail/0/995
+ msi.setTo(to);
+ msi.setSubject(subject);
+ msi.setText(content,true);//true开启HTML解析
+ mailSender.send(ms);
+ }catch (Exception e){
+ System.out.println(e);
+ }
+ }
+ }
+
diff --git a/src/main/java/com/guaiguailang/harmony/utils/KeyBase64.java b/src/main/java/com/guaiguailang/harmony/utils/KeyBase64.java
new file mode 100644
index 0000000..19c233d
--- /dev/null
+++ b/src/main/java/com/guaiguailang/harmony/utils/KeyBase64.java
@@ -0,0 +1,15 @@
+package com.guaiguailang.harmony.utils;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import java.util.Base64;
+public class KeyBase64 {
+ public static String strToBase64(String str){
+ try{
+ return Base64.getEncoder().encodeToString(str.getBytes());
+ }catch (Exception e){
+ System.out.println(e);
+ }
+ return str;
+ }
+}
diff --git a/src/main/java/com/guaiguailang/harmony/utils/UtilEmailSent.java b/src/main/java/com/guaiguailang/harmony/utils/UtilEmailSent.java
new file mode 100644
index 0000000..8e4f7da
--- /dev/null
+++ b/src/main/java/com/guaiguailang/harmony/utils/UtilEmailSent.java
@@ -0,0 +1,41 @@
+package com.guaiguailang.harmony.utils;
+
+import com.guaiguailang.harmony.config.MailConfig;
+import jakarta.mail.internet.MimeMessage;
+import jakarta.validation.groups.Default;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.mail.MailSender;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.MimeMessageHelper;
+import org.springframework.mail.javamail.MimeMessagePreparator;
+import org.springframework.stereotype.Component;
+@Slf4j
+@Component
+public class UtilEmailSent {
+ @Autowired
+ MailConfig mailConfig;
+ public void sendEmail(String to, String subject, String content){
+ sendEmail(to,subject,content, mailConfig.getNickname());
+ }
+ public void sendEmail(String to, String subject, String content,String nickname) {
+ JavaMailSender mailSender = mailConfig.getJavaMailSender();
+ MimeMessage mimeMessage = mailSender.createMimeMessage();
+ String from = mailConfig.getUsername();
+ nickname = KeyBase64.strToBase64(nickname);
+ System.out.println("2:"+nickname);
+ nickname = "=?UTF-8?B?"+nickname+"?=";
+ try {
+ MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
+ mimeMessageHelper.setFrom(nickname+' '+'<'+from+'>');
+ mimeMessageHelper.setTo(to);
+
+ mimeMessageHelper.setSubject(subject);
+ mimeMessageHelper.setText(content, true);
+ mailSender.send(mimeMessage);
+ }catch (Exception e){
+ log.error("(配置邮件失败){}",e.getMessage());
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index f1271e9..bc4be5e 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -67,3 +67,44 @@ sa-token.token-style=uuid
# 是否输出操作日志
sa-token.is-log=true
+
+#application.properties基本配置,后面我都使用此配置来发送邮件
+## 基本配置
+### smtp服务器主机(163的)
+spring.mail.host=smtp.qiye.163.com
+spring.mail.port=25
+### 服务协议SMTP(代表是发送邮件)
+spring.mail.protocol=smtp
+### 登录服务器邮箱账号
+spring.mail.username=news@mllt.cc
+### 登录服务器邮箱授权码(不是邮箱密码,这个是我们开通SMTP、POP时得到的授权码)
+spring.mail.password=Qq2686485465@
+### 默认邮件的编码集(MimeMessage 编码,默认UTF-8)
+spring.mail.default-encoding=UTF-8
+
+# 补充配置(这里具体可以参照Jakarta Mail的扩展配置)
+## 默认发送方邮箱账号(当程序未指定发件人邮箱则默认取这个)
+spring.mail.properties.mail.smtp.from=news@mllt.cc
+## 开启权限认证
+spring.mail.properties.mail.smtp.auth=true
+## 邮件接收时间的限制
+spring.mail.properties.mail.smtp.timeout=60000
+## 连接时间的限制
+spring.mail.properties.mail.smtp.connectiontimeout=60000
+## 邮件发送时间的限制(毫秒)
+spring.mail.properties.mail.smtp.writetimeout=60000
+## 日志打印,邮件发送过程的日志会被输出
+spring.mail.properties.mail.debug=true
+# 下面这条配置请去 src/main/java/com/guaiguailang/harmony/config/MailConfig.java 修改。在这里修改是无效的。因为这里写中文会导致乱码。
+email.form.nickname=[和生]消息通知
+
+
+
+
+# 中文乱码问题
+banner.charset=UTF-8
+server.tomcat.uri-encoding=UTF-8
+server.servlet.encoding.charset=UTF-8
+server.servlet.encoding.enabled=true
+server.servlet.encoding.force=true
+spring.messages.encoding=UTF-8
\ No newline at end of file
diff --git a/src/test/java/com/guaiguailang/harmony/HarmonyLifeServerApplicationTests.java b/src/test/java/com/guaiguailang/harmony/HarmonyLifeServerApplicationTests.java
index 4f9acfd..25fa180 100644
--- a/src/test/java/com/guaiguailang/harmony/HarmonyLifeServerApplicationTests.java
+++ b/src/test/java/com/guaiguailang/harmony/HarmonyLifeServerApplicationTests.java
@@ -1,16 +1,18 @@
package com.guaiguailang.harmony;
+import com.guaiguailang.harmony.config.MailConfig;
+import com.guaiguailang.harmony.service.EmailService;
+import com.guaiguailang.harmony.utils.UtilEmailSent;
import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-
-import javax.xml.transform.Result;
-import java.util.Scanner;
-
@SpringBootTest
class HarmonyLifeServerApplicationTests {
-
+ @Autowired
+ UtilEmailSent utilEmailSent;
@Test
void contextLoads() {
+ utilEmailSent.sendEmail("2952458479@qq.com","测试邮件标题","测试邮件内容");
}
}