解決方案如下:
更新郵件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
