使用Java从office365 Outlook帐户读取电子邮件

时间:2015-03-01 06:53:36

标签: javamail office365

我们要求从Office365帐户读取电子邮件并在我们的Java EE应用程序中显示它们。我们使用JavaMail完成它并按预期工作;但问题在于性能。它需要大约30秒到3分钟才能阅读电子邮件,具体取决于邮件或附件的大小。有什么方法可以改善这种表现吗?以下是我们采取的方法的更多细节。

  1. 我们正在使用IMAPStore
  2. 检索邮件
  3. 我们需要阅读的电子邮件不在收件箱内。它在它之外的不同文件夹中。此文件夹再次具有子文件夹,用于保存基于主题的已过滤的电子邮件。
  4. 在阅读我们从特定文件夹中读取的邮件时,请在我们的应用程序中将它们显示在与邮件服务器中相同的层次结构中。
  5. 我们想到了不同的替代方法,例如从PST文件读取或通过后台进程将电子邮件存储到我们的数据库中,然后从数据库中读取,但它们都没有真正解决。 有没有其他方法可以做到这一点。我们发现有一个适用于android的Office365 SDK,我们可以使用它吗?

1 个答案:

答案 0 :(得分:1)

首先,it's not "JEE", it's "Java EE"

你还没有真正提供任何关于你正在做什么的细节需要30秒到3分钟。它正在阅读1条消息吗?它是在阅读1000条消息吗?

你读“消息”的确是什么意思?只显示标题信息,或显示所有邮件内容?

时间是否包含连接服务器和打开文件夹的时间?或者只是在打开文件夹后访问消息的时间?

你看过JavaMail debug output了吗?如果使用java.util.logging来获取带时间戳的日志记录输出,那么您可以知道哪个操作占用了时间。

您是否使用Folder.fetch方法批量预取邮件数据?

为什么你认为Office365不仅速度慢?

通过更多详细信息,我们可以为如何提高程序性能提供更多提示。