初始化前端目录
This commit is contained in:
69
src/main/java/com/mini/capi/config/JavaMailConfig.java
Normal file
69
src/main/java/com/mini/capi/config/JavaMailConfig.java
Normal file
@@ -0,0 +1,69 @@
|
||||
package com.mini.capi.config;
|
||||
|
||||
import com.mini.capi.biz.domain.MailAccount;
|
||||
import javax.mail.Session;
|
||||
import java.util.Properties;
|
||||
|
||||
public class JavaMailConfig {
|
||||
|
||||
/**
|
||||
* 构建IMAP Session(用于接收邮件)
|
||||
*/
|
||||
public static Session createImapSession(MailAccount account) {
|
||||
Properties props = new Properties();
|
||||
// IMAP基础配置
|
||||
props.setProperty("mail.store.protocol", "imap");
|
||||
props.setProperty("mail.imap.host", account.getHost());
|
||||
props.setProperty("mail.imap.port", account.getImapPort().toString());
|
||||
// SSL配置
|
||||
if (Boolean.TRUE.equals(account.getSslEnable())) {
|
||||
props.setProperty("mail.imap.ssl.enable", "true");
|
||||
props.setProperty("mail.imap.ssl.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
|
||||
}
|
||||
// 超时配置
|
||||
props.setProperty("mail.imap.connectiontimeout", "5000");
|
||||
props.setProperty("mail.imap.timeout", "5000");
|
||||
|
||||
// 创建Session(带认证)
|
||||
return Session.getInstance(props, new javax.mail.Authenticator() {
|
||||
@Override
|
||||
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
|
||||
return new javax.mail.PasswordAuthentication(
|
||||
account.getUsername(),
|
||||
account.getPassword()
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建SMTP Session(用于发送邮件)
|
||||
*/
|
||||
public static Session createSmtpSession(MailAccount account) {
|
||||
Properties props = new Properties();
|
||||
// SMTP基础配置
|
||||
props.setProperty("mail.transport.protocol", "smtp");
|
||||
props.setProperty("mail.smtp.host", account.getHost());
|
||||
props.setProperty("mail.smtp.port", account.getSmtpPort().toString());
|
||||
// 认证和SSL配置
|
||||
props.setProperty("mail.smtp.auth", "true"); // 必须开启认证
|
||||
if (Boolean.TRUE.equals(account.getSslEnable())) {
|
||||
props.setProperty("mail.smtp.ssl.enable", "true");
|
||||
props.setProperty("mail.smtp.ssl.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
|
||||
}
|
||||
// 超时配置
|
||||
props.setProperty("mail.smtp.connectiontimeout", "5000");
|
||||
props.setProperty("mail.smtp.timeout", "5000");
|
||||
|
||||
// 创建Session(带认证)
|
||||
return Session.getInstance(props, new javax.mail.Authenticator() {
|
||||
@Override
|
||||
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
|
||||
return new javax.mail.PasswordAuthentication(
|
||||
account.getUsername(),
|
||||
account.getPassword()
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
25
src/main/java/com/mini/capi/config/ThreadPoolConfig.java
Normal file
25
src/main/java/com/mini/capi/config/ThreadPoolConfig.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package com.mini.capi.config;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import java.util.concurrent.*;
|
||||
|
||||
@Configuration
|
||||
public class ThreadPoolConfig {
|
||||
|
||||
/**
|
||||
* 附件处理线程池:核心线程2,最大线程5,队列100,空闲60s回收
|
||||
*/
|
||||
@Bean("attachmentThreadPool")
|
||||
public ExecutorService attachmentThreadPool() {
|
||||
return new ThreadPoolExecutor(
|
||||
2,
|
||||
5,
|
||||
60L,
|
||||
TimeUnit.SECONDS,
|
||||
new LinkedBlockingQueue<>(100),
|
||||
Executors.defaultThreadFactory(),
|
||||
new ThreadPoolExecutor.AbortPolicy() // 队列满时拒绝策略(可根据需求调整)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user