Как создать 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
}