Я пытаюсь, чтобы приложение Java для обработки электронной почты перемещало все обработанные письма из папки входящих сообщений IMAP в подпапку.Если эта подпапка не существует, она должна создать ее.Этот последний бит - то, что не работает.
Фрагмент кода:
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 здесь здесь , но он действительно ничего не говоритза исключением того, что если create () возвращает false
, папка не была создана (сюрприз, сюрприз).
Мне удалось создать папку с помощью Thunderbird с той же учетной записью.
Myпочтовый сервер (Postfix) не показывал никаких записей в журнале, кроме тех случаев, когда он не мог найти новую папку.В соответствующем модульном тесте фиктивный почтовый сервер (GreenMail) либо работает, либо игнорирует команду, в любом случае тест проходит успешно.