Java邮件性能

2023-11-29

我一直在使用 javamail 从 IMAP 服务器(当前是 GMail)检索邮件。 Javamail 非常快地从服务器检索特定文件夹中的消息列表(仅 ID),但当我实际获取消息(仅信封,甚至不包含内容)时,每条消息大约需要 1 到 2 秒。快速检索应该使用哪些技术?

这是我的代码:

    try {
        IMAPStore store = null;
        if(store!=null&&store.isConnected())return;
        Properties props = System.getProperties();
        Session sessionIMAP = Session.getInstance(props, null);
        try {
            store = (IMAPStore) sessionIMAP.getStore("imaps");
            store.connect("imap.gmail.com",993,"[email protected]","password");
        } catch (Exception e) {
            e.printStackTrace();
        }

        IMAPFolder folder = (IMAPFolder) store.getFolder("INBOX");
        folder.open(Folder.READ_ONLY);
        System.out.println("start");
        Message[] msgs = folder.getMessages(1,10);
        long ftime = System.currentTimeMillis();
        FetchProfile fp=new FetchProfile();
        fp.add(FetchProfile.Item.ENVELOPE);
        folder.fetch(msgs, fp);
        long time = System.currentTimeMillis();
        System.out.println("fetch: "+(time-ftime));
        for (Message message : msgs) {
            System.out.println(message.getSubject());
            Address[] from = message.getFrom();
            for (Address address : from) {
                System.out.println(address);
            }
            Address[] recipients = message.getAllRecipients();
            for (Address address : recipients) {
                System.out.println(address);
            }

        }
        long newTime = System.currentTimeMillis();
        System.out.println("convert: "+(newTime-time));
    }catch (Exception e) {
        e.printStackTrace();
    }


}

我相信 Gmail 将 IMAP 邮件读取限制为每秒一次左右。您也许可以通过多个 IMAP 连接来加快速度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java邮件性能 的相关文章

随机推荐

  • 在ubuntu 16.04上安装pip

    我正在安装pip对于 python3 我为此使用了以下命令 sudo apt get install python3 pip 但安装后还是提示pip未安装 I have python 3 5 2安装 The python3 pip软件包为
  • TinyMCE 在隐藏文本区域之前不会从文本区域获取内容

    我在页面上运行了一个 TinyMCE 实例 使我能够编辑现有帖子 我查询数据库并填充变量 content与存储的文本 然后我有以下 HTML
  • 仅使用 xamarin Andriod 连接到 mySQL 数据库时出现问题,但可在 iOS 和 UWP 中使用

    我正在从 Xamarin 跨平台应用程序直接连接到 mySQL 服务器 仅用于学习目的 该连接在 iOS 和 UWP 中都运行良好 但在 Android 中会抛出此行错误 等待 conn OpenAsync 这是完整的错误 System T
  • LLVM JIT编译的程序找不到外部函数

    我的程序 JIT 编译 LLVM IR 模块并调用函数foo如果其中定义在运行时失败foo使用外部定义的函数 LLVM ERROR Program used external function glutInit which could no
  • 为什么 numpy.vectorize 在使用不确定性时会发出有关无效值的警告?

    使用 Python 3 10 numpy 1 23 5 和不确定性3 1 7 在 Linux 上 特别是在 Fedora 37 上使用 conda forge 的软件包 代码如下 import numpy as np from uncert
  • Qt - 如何在多个平台上保存配置文件

    我正在编写一个 Qt 应用程序 需要将一些设置保存到用户的配置目录中 我想出了以下代码来获取此文件夹 ifdef Q WS WIN path QDir homePath Application Data Timely else path Q
  • excel vba选择表格范围

    我想选择一个表 它将有固定的列 其中 4 个 但可以有任意数量的行 也可以有空行 我将如何选择表格范围 例如 当前选择是B2 to E5 我怎样才能在VBA中以编程方式获得这个 以下是如何设置对表的引用 你应该观看 Excel VBA 简介
  • 基于通配符替换字符串的 SQL 查询

    我想在我的 WP 数据库上运行此类查询以删除 id more 的所有跨度实例 UPDATE wp posts SET post content REPLACE post content p span span p 但在我的示例中 more
  • 如何使用适配器在按钮单击时添加 ListView 项目

    如何获取在 EditText 中输入的数据并通过单击该窗口中的 提交 将其添加到以前的活动列表视图项目中 我需要做的是 创建 EditText 和提交按钮 在同一个 Activity 中创建列表视图 通过单击提交按钮 它应该在列表视图中显示
  • Cobertura 显示正确的覆盖范围,但在声纳中许多文件显示 0% 覆盖范围

    I have write multiple JUnit test classes for my project The code covergae is 80 when I see it in Eclipse using cobertura
  • 执行 sqlalchemy 存在查询

    我无法理解如何执行查询来检查 sqlalchemy 中是否已存在匹配的记录 我可以在网上找到的大多数示例似乎都引用了我没有的 会话 和 查询 对象 这是一个简短的完整程序 说明了我的问题 1 使用 person 表设置内存中的sqlite数
  • 将“Dialog”小部件的宽度设置为 Vaadin 14 中页面的百分比

    在瓦丁 14 中 Dialog当指定宽度和高度时 小部件可以正确打开px CSS 虚拟 像素 Dialog dialog new Dialog dialog setCloseOnEsc true dialog setCloseOnOutsi
  • 在 Yii2 中禁用单个操作的 CSRF 验证

    有没有办法对控制器的某些操作禁用 CSRF 验证 同时对其他操作保持启用状态 就我而言 我有几个可配置的 Action 类 它们旨在注入到控制器中 我无法将 csrf 验证令牌传递到 AJAX 请求中 因为我正在使用的东西是前端的外部 不是
  • NetBeans 7.0 的 Java UML 自动生成 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我需要为我的项目制作 UM
  • Git:仅在将外部分支合并到主分支时防止快进合并

    为了方便查看功能分支何时合并到 master 可以使用 Git 的 no ff将其功能分支合并到主分支时的选项 无需键入即可完成此操作的一种方法 no ff是完全禁用快进合并到 master 中 git config branch mast
  • HTML5画布颜料混合颜色工具

    你好 我需要创建混合颜色工具 我尝试从画布中获取颜色像素getImageData并与我选择的颜色混合并获得平均颜色 我可以轻松获得它 r1 red channel from getImageData g1 green channel fro
  • 从 WP_Query 中排除 WooCommerce 产品类别

    我将以下参数定义为查询的一部分 args apply filters woocommerce related products args array post type gt product author gt artist post st
  • 使用 AutoMapper 的集成测试无法初始化配置

    框架和包 NETCoreApp 1 1 Xunit 2 2 0 AutoMapper 6 0 2 Microsoft AspNetCore TestHost 1 1 1 Microsoft NET Test Sdk 15 0 0 集成测试
  • Android:无法播放mp4视频

    我正在尝试玩mp4 视频流使用本机从服务器视频查看 遗憾的是我不断收到 无法播放视频 error 奇怪的是 同一个视频在 Froyo 上播放得很好 但在 HoneyComb 上却无法播放 我用 MX Video Player 在 HC 上
  • Java邮件性能

    我一直在使用 javamail 从 IMAP 服务器 当前是 GMail 检索邮件 Javamail 非常快地从服务器检索特定文件夹中的消息列表 仅 ID 但当我实际获取消息 仅信封 甚至不包含内容 时 每条消息大约需要 1 到 2 秒 快