如何使用JavaMail创建mbox?

如何使用JavaMail创建mbox?,java,jakarta-mail,mbox,mstor,Java,Jakarta Mail,Mbox,Mstor,如何使用IMAP协议和JavaMail读取邮件收件箱,然后使用本地磁盘存储邮件。没有mstor的文档。 我尝试了这种方法,但MStorStore似乎只是读取本地mbox,而不是根据在connect()函数中作为参数传递的外部服务器来创建和更新它。我收到错误:文件夹[收件箱]不存在 Session lSession = Session.getDefaultInstance(props); MStorStore lStore = new MStorStore(lSession , new URLNa

如何使用IMAP协议和JavaMail读取邮件收件箱,然后使用本地磁盘存储邮件。没有mstor的文档。 我尝试了这种方法,但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");

问题是如何从javax.mail.Store创建MBox,我可以使用Mstor阅读和更新它。

我不知道我是否回答了正确的问题(或者回答了一个问题),但是,下面是我在Scala程序中编写的一个方法,该程序接收一系列javamail消息(通过imap获取)并使用MStorStore将它们写入项目根目录中名为“mbox”的目录中的新mbox文件。新文件以“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
  }

我不知道我是否回答了正确的问题(或者回答了一个问题),但是,下面是我在Scala程序中编写的一个方法,它接收一组javamail消息(通过imap获取),并使用MStorStore将它们写入项目根目录中名为“mbox”的新mbox文件中。新文件以“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
  }

在快速查看之后,您可能正在查找。不,MStorFolder扩展了java.mail.Folder,从我看到的情况来看,仅从已经存在的文件夹中读取,听起来像是创建了一个文件夹。如果存在异常,将抛出
新MessaginException(“文件夹已存在”)
中的异常。听起来对我来说还不错。是的,但问题是MStorStore在构造函数中作为参数传递到MStorFolder。使用mstor协议(本地存储)或imaps,我无法从服务器下载mbox并保持同步。快速查看后可能就是您要找的。否,MStorFolder扩展了java.mail.Folder,据我所知,只能从已经存在的文件夹中读取,听起来像是在创建文件夹。如果存在异常,将抛出
新MessaginException(“文件夹已存在”)
中的异常。听起来对我来说还不错。是的,但问题是MStorStore在构造函数中作为参数传递到MStorFolder。使用mstor协议(本地存储)或imaps,我无法从服务器下载mbox并保持同步