我正在使用以下Java示例代码连接到imap服务器:
void emailtest(String user, String pass, String server, String port, String folder, String timeout) {
Properties props = new Properties();
props.put("mail.store.protocol", "imap");
props.put("mail.imap.host", server);
props.put("mail.imap.port", port);
props.put("mail.imap.ssl.enable", "true");
Session session = Session.getInstance(props, null);
try (Store store = session.getStore("imap")) {
System.out.println("Establishing connection to: " + server);
store.connect(user, pass);
System.out.println("Connected!");
Folder def = store.getDefaultFolder();
Folder[] tmp = def.list("*");
Folder[] folders = new Folder[tmp.length + 1];
System.arraycopy(tmp, 0, folders, 0, tmp.length);
folders[tmp.length] = def; // this is the root folder
for(Folder f : folders)
System.out.println("Foldername: " + f.getName());
// .... further processing of folder contents
如您所见,我还在打印默认根文件夹的名称,
到目前为止,在我的测试中一直是一个空字符串,因此它本身不包含电子邮件。
我的问题:
它是否取决于电子邮件提供者,如果根文件夹将包含任何消息,还是可以安全地假设根文件夹仅包含一个子文件夹列表,而其本身将不再包含任何电子邮件?
最佳答案
某些IMAP服务器会将INBOX用作根文件夹,因此,不能,您不能依赖不包含任何消息的根文件夹。
关于java - 连接到imap服务器并处理根文件夹的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53802740/