簡體   English   中英

需要一種使用imap在郵件中搜索消息ID的方法

[英]Need a way to search mail for a message id using imap

我正在使用Java Mail API訪問Gmail帳戶(未修復)。 我需要在所有郵件中搜索給定的郵件ID()。 搜索應在具有給定ID的消息首次出現時終止(優化:只有一個具有給定ID的郵件應存在)

我當然想跳過“所有郵件”文件夾。

最簡單的方法是:

  1. 獲取默認文件夾
  2. 默認情況下獲取所有文件夾。
    1. 在當前文件夾中使用MessageIDTerm搜索
    2. 如果未找到消息,請對子文件夾遞歸重復步驟2
    3. 否則返回找到的文件夾。

這會導致大量不必要的服務器調用浪費,請問有沒有一種方法更優化?

自從我把所有這些東西弄亂了已經很久了,但是您應該能夠:

  • 使用IMAP4 UID命令,該命令搜索給定的ID(或ID范圍)。 參考RFC35016.4.8
  • 將此對象與IMAPFolder對象上的doCommand()使用,並根據需要遍歷文件夾。
folder.list("*");

這是一種遞歸返回所有文件夾列表的方法。 所以我只需要為文件夾運行1個循環! 當然,在搜索中找到的每條消息都會有一個循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM