解決使用mail包的imap協議收163郵箱的郵件A3 NO EXAMINE Unsafe Login 的錯誤


解決方案如下:

更新郵件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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM