2016-03-04 4 views
1

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

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"); 

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

+0

После того, как быстрый взгляд [MStorFolder] (https://github.com/benfortuna/mstor/blob/master/src/main/java/net/fortuna/mstor/MStorFolder.java) может быть то, что ты ищешь. – SubOptimal

+0

Нет, MStorFolder расширяет java.mail.Folder и из того, что я вижу, только для чтения из уже существующей папки –

+0

[MStorFolder.create] (https://github.com/benfortuna/mstor/blob/master/src/ main/java/net/fortuna/mstor/MStorFolder.java # L206) звучит как создание папки. Если он существует, исключается исключение нового сообщенияExceptionException («Папка уже существует») '. Звучит не плохо для меня. – SubOptimal

ответ

0

Я не знаю, отвечаю ли я на правильный вопрос (или вообще на вопрос), но вот метод, который я написал в программе 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 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^