linwe
2024-08-09 8b7258c9427882bb1798f1502eaa35184c6e374e
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();
   }
}