【发布时间】:2011-03-20 04:30:24
【问题描述】:
我正在尝试让处理电子邮件的 Java 应用程序将所有已处理的邮件从 IMAP 收件箱移动到子文件夹。如果该子文件夹不存在,它应该创建它。最后一点是行不通的。
代码sn-p是:
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,但它实际上什么也没说,只是如果 create() 返回 false,则说明文件夹没有创建(惊喜,惊喜)。
我能够使用同一帐户使用 Thunderbird 创建文件夹。
我的电子邮件服务器 (Postfix) 没有显示任何日志条目,除非它找不到新文件夹。在相应的单元测试中,模拟邮件服务器(GreenMail)要么工作要么忽略命令,无论如何,测试通过。
【问题讨论】:
标签: java email imap jakarta-mail