java - 如何使用 javax mail 归档电子邮件

标签 java jakarta-mail

我需要存档/存储 java 形式的 gmail 电子邮件,但我只知道将其设置为已读/未读...

这是我的代码:

public class CheckingMails {

private static Session session = null;
private static Store store = null;
private static Folder inbox = null;

   public static void check(String host, String storeType, final String user,
      final String password) 
   {
      try {
          Properties properties = new Properties();
          properties.setProperty("mail.host", "imap.gmail.com");
          properties.setProperty("mail.port", "995");
          properties.setProperty("mail.transport.protocol", "imaps");
          session = Session.getInstance(properties,new javax.mail.Authenticator() {
              protected PasswordAuthentication getPasswordAuthentication() {
                  return new PasswordAuthentication(user, password);
              }});
          store = session.getStore("imaps");
          store.connect();
          inbox = store.getFolder("INBOX");
          inbox.open(Folder.READ_WRITE);
          Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.SEEN), false));
          for (int i = 0; i < messages.length; i++) {
              if(messages[i].getSubject().contains("Ticket#")){
                  System.out.println("Number of Ticket = " + messages.length);
                  messages[i].setFlag(Flag.SEEN, true);
              }

          }
          inbox.close(true);
          store.close();

      } catch (NoSuchProviderException e) {
         e.printStackTrace();
      } catch (MessagingException e) {
         e.printStackTrace();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }

有人可以解释一下如何存档吗?

最佳答案

我假设“存档”的意思是“将其移动到服务器上的存档文件夹”。

使用Folder.copyMessages将邮件复制到存档文件夹,然后使用 Message.setFlag 将原始邮件标记为“已删除” .

关于java - 如何使用 javax mail 归档电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36134318/

相关文章:

java - 当应该返回 true 时 hashset 返回 false

java - Activity 之间的全局对象

Javamail NTLM 身份验证失败

java - 无法使用 Spring : javax. mail.FolderClosedException 读取电子邮件正文

java - 使用 TomCat 处理文件时,换行命令 (\n) 不起作用

java - 如何像在 Eclipse 中一样在 IntelliJ 中立即停止所有进程

java - 使用 Pixelmed 读取和写入 DICOM 属性

java - 如何从Java中的ArrayList中删除所有内容,但第一个元素

java - 获取 'seen' 标志似乎不起作用

java - 用于 JUnit 测试的可配置邮件服务器模拟?