From cb6efdef55c77da2bcc8dbd99a74e7e49c5ec067 Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Tue, 05 Mar 2024 18:06:34 +0800
Subject: [PATCH] 邮件收件+bug修复+流程优化

---
 src/main/java/org/springblade/modules/email/config/MailSenderConfig.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/modules/email/config/MailSenderConfig.java b/src/main/java/org/springblade/modules/email/config/MailSenderConfig.java
index ed9ba50..9491222 100644
--- a/src/main/java/org/springblade/modules/email/config/MailSenderConfig.java
+++ b/src/main/java/org/springblade/modules/email/config/MailSenderConfig.java
@@ -8,7 +8,10 @@
 import org.springframework.mail.javamail.JavaMailSenderImpl;
 import org.springframework.stereotype.Component;
 
+import javax.mail.*;
+import java.security.Security;
 import java.util.List;
+import java.util.Properties;
 
 @Slf4j
 @Component
@@ -34,6 +37,7 @@
 		//获取数据库中启用的邮件配置
 		EmailEntity params = new EmailEntity();
 		params.setStatus(2);
+		params.setEmailType("1");
 
 		EmailEntity email = emailMapper.selectOne(Condition.getQueryWrapper(params));
 		JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
@@ -61,6 +65,48 @@
 	}
 
 	/**
+	 *
+	 * @return
+	 * @throws MessagingException
+	 */
+	public Store buildMailReceive() throws MessagingException {
+		log.info("初始化mailReceive");
+
+		//获取数据库中启用的邮件配置
+		EmailEntity params = new EmailEntity();
+		params.setStatus(2);
+		params.setEmailType("2");
+
+		EmailEntity email = emailMapper.selectOne(Condition.getQueryWrapper(params));
+
+		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
+		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";//ssl加密
+
+		//有些参数可能不需要
+		Properties props = new Properties();
+		props.setProperty("mail.imap.socketFactory.class", SSL_FACTORY);
+		props.setProperty("mail.imap.socketFactory.fallback", "false");
+		props.setProperty("mail.transport.protocol", email.getProtocol()); // 使用的协议
+		props.setProperty("mail.imap.port", email.getPort().toString());
+		props.setProperty("mail.imap.socketFactory.port", email.getPort().toString());
+
+		//创建会话
+		Session session = Session.getInstance(props, new Authenticator() {
+			@Override
+			protected PasswordAuthentication getPasswordAuthentication() {
+				return new PasswordAuthentication(email.getUsername(),email.getPassword());
+			}
+		});
+		//存储对象
+		Store store = session.getStore("imap");
+		//连接
+		store.connect("imap.qq.com",email.getPort(),email.getUsername(),email.getPassword());
+		return store;
+
+
+	}
+
+	/**
 	 * 获取MailSender
 	 *
 	 * @return CustomMailSender
@@ -68,4 +114,14 @@
 	public JavaMailSenderImpl getSender() {
 		return buildMailSender();
 	}
+
+
+	/**
+	 * 获取MailSender
+	 *
+	 * @return CustomMailSender
+	 */
+	public Store getReceive() throws MessagingException {
+		return buildMailReceive();
+	}
 }

--
Gitblit v1.9.3