_1_1_7_
2016-11-24 09:35
采纳率: 33.3%
浏览 4.1k
已采纳

javamail 接收126邮箱邮件问题

谁有解决方案?

 Folder folder = store.getFolder("INBOX");
 folder.open(Folder.READ_WRITE);

Caused by: com.sun.mail.iap.CommandFailedException: A3 NO SELECT The login is not safe! Please update your mail client: http://mail.163.com/dashi
at com.sun.mail.iap.Protocol.handleResult(Protocol.java:396)
at com.sun.mail.imap.protocol.IMAPProtocol.select(IMAPProtocol.java:1184)
at com.sun.mail.imap.IMAPFolder.open(IMAPFolder.java:1030)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • _1_1_7_ 2016-11-25 07:39
    已采纳

    自己解决了,改了javamail源码,open folder前发送了 ID command

    点赞 评论
  • Android_machong 2016-11-24 10:41

    上面说一个不安全的请求被阻止了,要求更新mail客户端为邮箱大师, 你可以看下这个http://mail.163.com/html/notice/2014/notice_1201.htm ,

    点赞 评论
  • _1_1_7_ 2016-11-25 00:27

    我现在找到资料如下:

     So what does that workaround do? IMAP command is usually in the format
    1 CAPABILITY 
    2 LOGIN USERNAME PASSWORD 
    3 CAPABILITY 
    4 LIST "" "" 
    5 ID NIL 
    6 SELECT INBOX  
    but 163 required a “C” before each command, eg
    C1 CAPABILITY
    so the fix is… add “C”.
    To apply to Javamail, we need to modify the Protocol object’s writeCommand method and use a “C” prefix for 163 (also 126.com, yeah.net) imap host address.
    

    但是要做到这点,要么修改javamail源码重新编译,要么用asm这样的东西修改字节码,都太麻烦,需要一些简便的技巧。

    点赞 评论
  • 布丁西西 2017-09-19 06:55

    可以看看这篇博客,

    http://blog.csdn.net/shenshibaoma/article/details/69396696

    修改源码的方式,大哥你可以分享下啊,网易确实很特殊啊,有点恶心.

    点赞 评论

相关推荐 更多相似问题