如何使用Java代码阅读MS Outlook收件箱邮件?

问题描述 投票:0回答:4

我需要使用java代码读取Outlook收件箱中的主题、消息。是否有相同的示例代码/想法,请帮助获得相同的内容。

我用StackOverflow搜索,它给出了C#代码。

我还检查了 Javamail,但没有找到任何有关 Outlook 的信息。

java outlook jakarta-mail
4个回答
1
投票

我就是这样做的。

   /**
 * Connects to email server with credentials provided to read from a given
 * folder of the email application
 * 
 * @param username Email username (e.g. [email protected])
 * @param password Email password
 * @param server   Email server (e.g. smtp.email.com)
 * @param INBOX    Folder in email application to interact with
 * @throws Exception
 */
    public OutlookEmail() throws Exception {
    Properties props = System.getProperties();
    props.setProperty("mail.store.protocol", "imap");
    props.setProperty("mail.imap.ssl.enable", "true");
    props.setProperty("mail.imaps.partialfetch", "false");
    props.put("mail.mime.base64.ignoreerrors", "true");

    Session mailSession = Session.getInstance(props);
    mailSession.setDebug(true);
    Store store = mailSession.getStore("imap");
    store.connect("outlook.office365.com", "YOUREMAILADDRESS", "YOUR PASSWORD");


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

    System.out.println("Total Message:" + folder.getMessageCount());
    System.out.println("Unread Message:" + folder.getUnreadMessageCount());

    messages = folder.getMessages();

    for (Message mail : messages) {         



            System.out.println("*********************************");
            System.out.println("MESSAGE : \n");

            System.out.println("Subject: " + mail.getSubject());
            System.out.println("From: " + mail.getFrom()[0]);
            System.out.println("To: " + mail.getAllRecipients()[0]);
            System.out.println("Date: " + mail.getReceivedDate());
            System.out.println("Size: " + mail.getSize());
            System.out.println("Flags: " + mail.getFlags());
            System.out.println("ContentType: " + mail.getContentType());
            System.out.println("Body: \n" + getEmailBody(mail));    
            System.out.println("*******************************");          

    }
}

**从配置中读取并传递凭据、uname、pwd 作为参数并进行屏蔽。


0
投票

如果您想使用 Java 读取 .pst 文件可能不是一个好的选择。对我来说,如果您有服务器详细信息,则直接从服务器获取邮件更有意义。

我从 Google 得到了这个链接——“读取 pst 文件”。


0
投票

当您说“Outlook 的收件箱”时,您是指 Outlook 存储在您本地计算机上的数据吗?或者您是指远程邮件服务器(可能是 Exchange)收件箱邮件文件夹中的数据?如果是后者,您可以使用 JavaMail 来执行此操作,但您必须配置 Exchange 服务器以允许 IMAP 访问。


0
投票

处理 Outlook 需要哪些 java jar 文件

© www.soinside.com 2019 - 2024. All rights reserved.