Как создать mbox с помощью Java JavaMail?

Как читать почтовый ящик, используя протокол IMAP и JavaMail, а затем использовать локальный диск для хранения почты. Там нет документации Мстор. Я пытаюсь таким образом, но кажется, что MStorStore просто читает локальный mbox вместо того, чтобы создавать и обновлять его в соответствии с внешним сервером, переданным в качестве параметров в функции connect(). Я получаю сообщение об ошибке: папка [Входящие] не существует.

Session lSession = Session.getDefaultInstance(props);
MStorStore lStore = new MStorStore(lSession , new URLName("mstor:c:/some_path/" + _mailModel.account.login));
lStore.connect(_mailModel.account.imap, _mailModel.account.login, _mailModel.account.password);
Folder lInbox = lStore.getDefaultFolder().getFolder("Inbox");

Вопрос в том, как создать MBox из javax.mail.Store, чтобы я мог читать и обновлять его с помощью Mstor.

1 ответ

Я не знаю, отвечаю ли я на правильный вопрос (или отвечаю на вопрос вообще), но вот метод, который я написал в программе Scala, которая принимает массив сообщений javamail (полученных через imap) и записывает их в новый файл mbox в каталоге с именем "mbox" в корне моего проекта с использованием MStorStore. Новый файл имеет имя, которое передается в параметре "mboxName".

def writeToMbox(messages: Array[Message], mboxName: String) {    
    val mProps = System.getProperties
    mProps.setProperty("mstor.mbox.metadataStrategy", "none")
    val mSession = Session.getDefaultInstance(mProps)
    val mStore = new MStorStore(mSession, new URLName("mstor:mbox"))
    mStore.connect
    val mFolder = mStore.getDefaultFolder
    val localMbox = (new File("mbox", mboxName)).createNewFile
    val mbox = mFolder.getFolder(mboxName)
    mbox.open(Folder.READ_WRITE)
    mbox.appendMessages(messages)
    mbox.close(false)
    mStore.close
  }
Другие вопросы по тегам