如何使用Java JavaMail创建mbox?

时间:2016-03-04 08:42:03

标签: java javamail mbox mstor

如何使用IMAP协议和JavaMail读取邮件收件箱,然后使用本地磁盘存储邮件。没有mstor的文档。 我尝试这种方式,但似乎MStorStore只是读取本地mbox而不是根据connect()函数中作为参数传递的外部服务器创建和更新它。我收到错误:文件夹[收件箱]不存在。

https://raw.githubusercontent.com/nltk/nltk_data

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

1 个答案:

答案 0 :(得分:0)

我不知道我是否回答了正确的问题(或者回答了一个问题),但是,这是我在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
  }