使用 JavaMail 加速電子郵件檢索 (Speed up email retrieval with JavaMail)


問題描述

使用 JavaMail 加速電子郵件檢索 (Speed up email retrieval with JavaMail)

目前,我的代碼使用 IMAP(imap)和 JavaMail 訪問我的 Gmail 收件箱,目的是閱讀從最新到最舊發送給我的電子郵件,識別哪些電子郵件具有 .zip 或 .xap 格式的附件。如果找到,將顯示電子郵件的主題並詢問我是否要下載附件。

如果我單擊“否”,它會繼續搜索。如果我點擊是,它會調用 createFolder 方法來創建一個目錄,將附件保存在那裡,然後提取它。

問題: 我收件箱中最近的電子郵件有一個.zip 文件,因此可以很快找到,但如果我單擊“否”,則需要 20 秒以上才能找到包含 zip/xap 的下一封電子郵件,原因有兩個:(1) 最近有 20 多封電子郵件 (2) 最近有 2 封電子郵件包含附件但不是 zip/xap。

我猜這是由於在識別附件格式或其他一些冗餘代碼/方法之前為隔離附件而發生的遞歸?我已閱讀 此處這裡 獲取配置文件可以提供幫助,而不是不必要地聯繫服務器。

我希望大大減少延遲。獲取/信封是要走的路嗎?我的代碼是一團亂麻,還是您可以分享一個示例解決方案?謝謝!


參考解法

方法 1:

A FetchProfile allows you to prefetch some of the message information "in bulk". This prefetched information is then used later when you access the corresponding fields of the Message objects. You probably want to use FetchProfile.Item.CONTENT_INFO and FetchProfile.Item.ENVELOPE. Other than that, your code looks fine.

(by Casey B.Bill Shannon)

參考文件

  1. Speed up email retrieval with JavaMail (CC BY‑SA 2.5/3.0/4.0)

#fetch #java #jakarta-mail #imap #gmail-imap






相關問題

mysql fetch 中的 $row 是什麼類型的變量? (What kind of variable is $row from a mysql fetch?)

如何在 PHP 中使用 bind_params 正確獲取數據到數組 (How to correctly fetch data to array with bind_params in PHP)

使用 JavaMail 加速電子郵件檢索 (Speed up email retrieval with JavaMail)

使用 eclipselink 從多個表中獲取數據 (Fetch data from multiple tables using eclipselink)

如何在 Webassembly 中獲取 JSON 文件 (How to Fetch a JSON file in Webassembly)

mysqli(a,b,c,d)->query(sql)->fetch_assoc() 究竟是如何工作的? (How exactly does mysqli(a,b,c,d)->query(sql)->fetch_assoc() work?)

如何在 .map 中返回異步函數? (How do I make an asynchronous function return in .map?)

如何僅在響應中的 onclick 事件後映射 json 列表? (How to map a json list only after an onclick event in react?)

在第二個 API 中使用來自第一個 API 的信息 - React (Using information from the first API in the second one - React)

使用 Jest 測試框架調用 fetch(url) 時如何根據 url 模擬變量響應? (How to mock variable responses based on the url when fetch(url) is called using the Jest testing framework?)

函數不返回對像以供 .then 使用 - 但能夠 console.log 對象,並明確返回它 (Function not returning object for .then to work with - but able to console.log the object, and am explicitly returning it)

fetch api - 400 加載資源失敗 (fetch api - 400 failed to load resource)







留言討論