V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
i4color
V2EX  ›  Java

求助 Java 用 imap 收取 outlook 邮件

  •  
  •   i4color · 44 天前 · 895 次点击
    这是一个创建于 44 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位大神:

    就是最基本的收取模式。
    直接用邮箱和密码去收取,
    但成功率很低,有时候可以,有时候就直接报
    A1 NO AUTHENTICATE failed

    代码如下

    // 设置 Outlook 邮件服务器和协议
    Properties props = new Properties();
    props.setProperty("mail.store.protocol", "imap");
    props.setProperty("mail.imap.host", "outlook.office365.com");
    props.put("mail.imap.starttls.enable", false);
    props.put("mail.imap.ssl.enable",true);
    props.put("mail.debug", "true");
    props.put("mail.debug.auth", "true");

    // 创建会话
    Session session = Session.getInstance(props, null);
    session.setDebug(true);

    // 连接到 Outlook 邮箱
    Store store = session.getStore();
    store.connect("[email protected]", "邮箱密码");

    // 打开收件箱
    Folder inbox = store.getFolder("INBOX");
    inbox.open(Folder.READ_ONLY);

    // 获取收件箱中的邮件
    Message[] messages = inbox.getMessages();

    for (Message message : messages) {
    System.out.println("Subject: " + message.getSubject());
    System.out.println("From: " + message.getFrom()[0]);
    System.out.println("Content: " + message.getContent());
    }

    // 关闭收件箱和连接
    inbox.close(false);
    store.close();



    按官方的说法,应该改为 oauth2.0 去收取,但做到 oauth2 还要注册应用程序,一大堆。
    我看 thunderbird mozilla 的邮件客户端 去收取 outook 邮件时,也只要填写邮箱密码,然后弹出 outlook 登陆即可。不需要常规的 oauth 的客户 id,密钥之类的


    求各位大神帮我指点迷津。
    2 条回复    2024-08-08 09:06:18 +08:00
    julyclyde
        1
    julyclyde  
       40 天前
    你也知道“弹出 outlook 登录”了啊
    i4color
        2
    i4color  
    OP
       30 天前
    可以了,是 outlook 的 imap 有问题,换成 pop3 就可以了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2392 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 00:11 · PVG 08:11 · LAX 17:11 · JFK 20:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.