@Configurationpublic class MailThreadPoolConfig { @Value("${spring.mail-task.execution.pool.core-size}") private int corePoolSize; @Value("${spring.mail-task.execution.pool.max-size}") private int maxPoolSize; @Value("${spring.mail-task.execution.pool.queue-capacity}") private int queueCapacity; @Value("${spring.mail-task.execution.thread-name-prefix}") private String namePrefix; @Value("${spring.mail-task.execution.pool.keep-alive}") private int keepAliveSeconds; /** * 邮件发送的线程池 * @return */ @Bean("mailTaskExecutor") public Executor mailTaskExecutor(){ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); //最大线程数 executor.setMaxPoolSize(maxPoolSize); //焦点线程数 executor.setCorePoolSize(corePoolSize); //任务队列的巨细 executor.setQueueCapacity(queueCapacity); //线程前缀名 executor.setThreadNamePrefix(namePrefix); //线程存活时间 executor.setKeepAliveSeconds(keepAliveSeconds); // 设置装饰器,父子线程共享request header变量 executor.setTaskDecorator(new RequestHeaderTaskDecorator()); /** * 拒绝处置惩罚战略 * CallerRunsPolicy():交由调用方线程运行,好比 main 线程。 * AbortPolicy():直接抛出非常。 * DiscardPolicy():直接扬弃。 * DiscardOldestPolicy():扬弃队列中最老的任务。 */ executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); // 线程初始化 executor.initialize(); return executor; }}6、增长邮件发送结果的摆列类MailResultCodeEnum
public enum MailResultCodeEnum { /** * 默认 */ SUCCESS("success", "邮件发送乐成"), /** * 自界说 */ ERROR("error", "邮件发送失败"); public String code; public String message; MailResultCodeEnum(String code, String message) { this.code = code; this.message = message; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; }}7、增长邮箱服务器相干默认设置的常量类JavaMailConstant.java
public class JavaMailConstant { /** * Redis JavaMail设置config key */ public static final String MAIL_CONFIG_KEY = "mail:config"; /** * 当开启多租户模式时,Redis JavaMail设置config key */ public static final String MAIL_TENANT_CONFIG_KEY = "mail:tenant:config:";}8、增长GitEggJavaMail主动装配类,根据Nacos大概体系设置举行装配。
@Slf4j@Configuration@RequiredArgsConstructor(onConstructor_ = @Autowired)public class GitEggJavaMailConfiguration { private final JavaMailSenderImpl javaMailSenderImpl; private final RedisTemplate redisTemplate; /** * 是否开启租户模式 */ @Value("${tenant.enable}") private Boolean enable; @Bean public JavaMailSenderFactory gitEggAuthRequestFactory() { return new JavaMailSenderFactory(redisTemplate, javaMailSenderImpl, enable); }}二、增长邮箱服务器设置界面