如何使用Java代码读取MS Outlook收件箱邮件?
我需要使用java代码阅读主题,Outlook收件箱中的邮件。是否有相同的示例代码/想法,请帮助获得相同的代码/想法 我用StackOverflow搜索,它用C#给出代码如何使用Java代码读取MS Outlook收件箱邮件?,java,outlook,jakarta-mail,Java,Outlook,Jakarta Mail,我需要使用java代码阅读主题,Outlook收件箱中的邮件。是否有相同的示例代码/想法,请帮助获得相同的代码/想法 我用StackOverflow搜索,它用C#给出代码 我还检查了Javamail,但是我没有找到任何关于Outlook的信息。如果您想使用Java阅读.pst文件,可能不是一个好的选择。对我来说,如果您有服务器的详细信息,那么直接从服务器获取邮件更有意义 我从谷歌得到了这个--“读取pst文件”。如果你想使用Java读取.pst文件,可能不是一个好的选择。对我来说,如果您有服务器
我还检查了Javamail,但是我没有找到任何关于Outlook的信息。如果您想使用Java阅读.pst文件,可能不是一个好的选择。对我来说,如果您有服务器的详细信息,那么直接从服务器获取邮件更有意义
我从谷歌得到了这个--“读取pst文件”。如果你想使用Java读取.pst文件,可能不是一个好的选择。对我来说,如果您有服务器的详细信息,那么直接从服务器获取邮件更有意义
我是从谷歌得到的--“阅读pst文件”。当你说“Outlook收件箱”时,你是指Outlook存储在本地计算机上的数据吗?或者是指远程邮件服务器(可能是Exchange)中收件箱邮件文件夹中的数据?如果是后者,您可以使用JavaMail来执行此操作,但必须将Exchange服务器配置为允许IMAP访问。当您说“Outlook收件箱”时,是指Outlook存储在本地计算机上的数据吗?或者是指远程邮件服务器(可能是Exchange)中收件箱邮件文件夹中的数据?如果是后者,您可以使用JavaMail来实现,但必须配置Exchange服务器以允许IMAP访问。我就是这样做的
/**
* Connects to email server with credentials provided to read from a given
* folder of the email application
*
* @param username Email username (e.g. janedoe@email.com)
* @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作为参数传递并屏蔽。我就是这样做的
/**
* Connects to email server with credentials provided to read from a given
* folder of the email application
*
* @param username Email username (e.g. janedoe@email.com)
* @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作为参数传递并屏蔽