Maildir
如何從 notmuch db 中已有的 maildir 消息文件名中獲取 notmuch message-id 和 thread-id?
假設我做了一個返回文件的查詢:
$ 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()