在IMAP中创建文件夹不起作用 [英] creating folders in IMAP does not work
本文介绍了在IMAP中创建文件夹不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在努力在IMAP中创建一个文件夹(我正在使用gmail)
I am trying hard to create a folder in IMAP (I am using gmail)
这是我迄今为止所尝试的:
Here is what i have attempted so far:
public boolean createFolder(String folderName) throws MessagingException
{
store = session.getStore("imap");
System.out.println("connecting store..");
store.connect("imap.gmail.com", 993, "something@gmail.com", "password");
System.out.println("connected !");
//using store.getDefaultFolder(); shows error : "folder cannot contain messages"
Folder defaultFolder = store.getFolder("Inbox");
return createFolder(defaultFolder, folderName);
}
private boolean createFolder(Folder parent, String folderName)
{
boolean isCreated = true;
try
{
parent.open(Folder.READ_WRITE);
System.out.println("adding listeners...");
parent.addFolderListener(myMailFolderListener);
System.out.println("creating a folder ....");
Folder testFolder = parent.getFolder(folderName);
isCreated = testFolder.create(Folder.HOLDS_MESSAGES);
System.out.println("created: " + isCreated);
parent.close(true);
} catch (Exception e)
{
System.out.println("Error creating folder: " + e.getMessage());
isCreated = false;
}
return isCreated;
}
文件夹名称传递:test 123
foldername passed: "test 123"
输出:文件夹被创建为收件箱/ test123
output: folder is created as Inbox/test123
我应该在这一行做什么:
文件夹defaultFolder = store.getFolder(收件箱);
what should i do in this line: Folder defaultFolder = store.getFolder("Inbox"); ??
我也在这里发布了同样的问题:
http://www.coderanch.com/t/458722/Sockets-Internet-Protocols/java/creating-folders-IMAP -does-not
I have also posted this same question here: http://www.coderanch.com/t/458722/Sockets-Internet-Protocols/java/creating-folders-IMAP-does-not
推荐答案
以下是正确的代码:
public boolean createFolder(String folderName) throws MessagingException
{
store = session.getStore("imap");
System.out.println("connecting store..");
store.connect("imap.gmail.com", 993, "something@gmail.com", "password");
System.out.println("connected !");
Folder defaultFolder = store.getDefaultFolder();
return createFolder(defaultFolder, folderName);
}
/*
* Note that in Gmail folder hierarchy is not maintained.
* */
private boolean createFolder(Folder parent, String folderName)
{
boolean isCreated = true;
try
{
Folder newFolder = parent.getFolder(folderName);
isCreated = newFolder.create(Folder.HOLDS_MESSAGES);
System.out.println("created: " + isCreated);
} catch (Exception e)
{
System.out.println("Error creating folder: " + e.getMessage());
e.printStackTrace();
isCreated = false;
}
return isCreated;
}
这篇关于在IMAP中创建文件夹不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文