Maildir

如何從 notmuch db 中已有的 maildir 消息文件名中獲取 notmuch message-id 和 thread-id?

  • August 26, 2020

假設我做了一個返回文件的查詢:

$ notmuch search --output=files tag:inbox from:love

這將返回一個文件列表,指向 Maildir 消息。現在我選擇其中一個文件(已經在 notmuch 數據庫中),例如

FILENAME=$(notmuch search --output=files tag:inbox from:love | fzf)

我想在 notmuch 數據庫中獲取它的消息 ID 和執行緒 ID。從變數 $FILENAME 中,我想找到不多的消息 ID。

一個非常草率的方法是解析文件,從 /subject/date 讀取標題並進行 notmuch query notmuch search from:{...} subject:{...} date:{..}。但是由於文件名已經儲存在數據庫中,我想應該有一種規範且可靠的方法來從文件名中獲取消息 ID。

謝謝!

我最終找到了通過 notmuch python 綁定的方法,請參閱https://notmuch.readthedocs.io/projects/notmuch-python/en/latest/database.html?highlight=filename#notmuch.Database.find_message_by_filename

一個工作的 bash 一個班輪是

threadId=$(python3 -c "import notmuch; db = notmuch.Database(); print(db.find_message_by_filename('$FILENAME').get_thread_id())");

解壓後的python3程式碼是

import notmuch
db = notmuch.Database()
msg = db.find_message_by_filename('filename of the maildir message')
msg.get_thread_id()

引用自:https://unix.stackexchange.com/questions/605961