JavaMail实现批量转发邮件
引言:
由于很多客户端不支持历史邮件的批量转发,但是在某些场景下又有这种需求。故编写了这么个小工具。
原本想采用Python做的,奈何语法不熟悉,还是采用了熟悉的Java
直接上代码(根据自己需要修改就好了)
(因为我的邮箱服务器貌似不支持searchTerm,所以直接读了所有邮件来解析归类)
(数据量大建议多线程)
import cn.hutool.core.io.file.FileReader;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.search.OrTerm;
import javax.mail.search.SearchTerm;
import javax.mail.search.SubjectTerm;
public class MailDispatcher {
private static final String IMAP_HOST = "imap.qiye.aliyun.com";
private static final String IMAP_USERNAME = "user";
private static final String IMAP_PASSWORD = "password";
private static final String SMTP_HOST = "smtp.qiye.aliyun.com";
// 设置线程池大小为5,线程池最大大小为10,线程池空闲时间为10秒
static ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 10, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
public static void main