获取邮件文件夹
### 获取邮箱文件夹
> 获取所有文件,包括邮箱中的自定义文件夹
> **TIPS: POP协议的无法获取文件夹**
#### 示例
```java
public void getAllFloder() {
//创建操作对象
final IMAPFetchFoldersOperation foldersOperation = session.fetchAllFoldersOperation();
//连接服务器
foldersOperation.start(new OperationCallback() {
@Override
public void succeeded() {
LogHelper.showLog("Login succeeded");
//获取服务器邮箱的文件夹,默认中文是乱码,需要通过域名空间转换一下
//imapFolder.path()
List<IMAPFolder> folderList = foldersOperation.folders();
for (IMAPFolder imapFolder : folderList) {
parseFolder(imapFolder);
}
}
@Override
public void failed(MailException e) {
LogHelper.showLog("Login failed:" + e.getMessage());
}
});
}
private void parseFolder(IMAPFolder imapFolder) {
//不检查登录时为null
//测试,某些邮件没有自带默认域名空间,需要调用方法来获取,但是调用的方法是不可使用的,会有异常
IMAPNamespace namespace = session.defaultNamespace();
String folderName = " Default Null";
if (namespace != null) {
//有的文件夹有两级,如:其他文件夹/自定义文件夹
if (imapFolder.path().contains("/")) {
String folder2[] = imapFolder.path().split("/");
List<String> tempList = namespace.componentsFromPath(folder2[0]);
//文件夹乱码现象
String firstDir = tempList.get(0);
tempList = namespace.componentsFromPath(folder2[1]);
//文件夹乱码现象
folderName = firstDir + "/" + tempList.get(0);
} else {
List<String> tempList = namespace.componentsFromPath(imapFolder.path());
//文件夹乱码现象
folderName = tempList.get(0);
}
} else {
folderName = " Default namespace Null";
}
LogHelper.showLog("imapFolder:" + imapFolder.path() + ", " + folderName+", namespace.mainPrefix():"+namespace.mainPrefix());
}
```
### 获取文件夹中的消息总数
#### 实例
```java
final IMAPFolderInfoOperation operation = session.folderInfoOperation(folderName);
LogHelper.showLog("request start");
operation.start(new OperationCallback() {
@Override
public void succeeded() {
LogHelper.showLog("request succeeded");
IMAPFolderInfo mIMAPFolderInfo = operation.info();
//获取文件夹内, 包含消息总数
int messageCount = mIMAPFolderInfo.messageCount();
}
@Override
public void failed(MailException e) {
//文件夹不存在
//The requested folder does not exist. Folder selection failed
LogHelper.showLog("request failed:"+e.getMessage());
}
});
```
>d 文件夹不存在
The requested folder does not exist. Folder selection failed