解决方案如下:
更新邮件jar包到1.6.1
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.1</version>
</dependency>
打开邮件时需要调用imapFolder.id的接口
final Map<String, String> clientParams = new HashMap<String, String>();
clientParams.put("name", "my-imap");
clientParams.put("version", "1.0");
imapFolder.id(clientParams);
imapFolder.open(Folder.READ_ONLY);
但是1.6.1的版本中imapFolder.id需要先打开邮件文件夹,所以就导致死循环了,代码改成如下:
final Map<String, String> clientParams = new HashMap<String, String>();
clientParams.put("name", "my-imap");
clientParams.put("version", "1.0");
imapFolder.doOptionalCommand("ID not supported",
new IMAPFolder.ProtocolCommand() {
@Override
public Object doCommand(IMAPProtocol p)
throws ProtocolException {
return p.id(clientParams);
}
});
imapFolder.open(Folder.READ_ONLY);
————————————————
版权声明:本文为CSDN博主「lennonchan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lennonchan/java/article/details/81005626