我试图让电子邮件处理Java应用程序将所有处理后的邮件从IMAP收件箱移动到子文件夹。如果该子文件夹不存在,它应该创建它。最后一点是不起作用的。在什么情况下,javax.mail中的Folder.create()返回false?
的代码片段是:
private void _backupMessage(Message msg, Folder folder, String sBackupFolderName) throws MessagingException
{
Folder backupFolder = folder.getFolder(sBackupFolderName);
if (!backupFolder.exists()) {
boolean f = backupFolder.create(Folder.HOLDS_FOLDERS & Folder.HOLDS_MESSAGES);
if (!f) {
this._triggerFaultEvent(new RuntimeException("Could not create backup folder."));
}
}
backupFolder.open(Folder.READ_WRITE);
folder.copyMessages(new Message[] { msg }, backupFolder);
backupFolder.close(true);
}
的造成相应的Javadoc是here,但它确实没有说什么,只是如果创建()返回false
,该文件夹没有创建(惊奇,惊奇) 。
我能够使用Thunderbird使用相同的帐户创建文件夹。
我的电子邮件服务器(Postfix)没有显示任何日志条目,除非它找不到新文件夹。在相应的单元测试中,模拟邮件服务器(GreenMail)可以正常工作或忽略命令,无论如何,测试都会通过。