Mutt
mutt - 過濾這樣的消息
我想複製 GMail 的“過濾此類郵件”功能。基本上,我希望在 mutt 中綁定一個鍵,例如 *,並且可以將顯示的消息“限制”到由同一發件人發送的那些消息(或者如果以;為前綴的發件人)
macro index * "<enter-command>set sender=display-address<enter><limit>$sender<enter>" "Filter Messages Like"
我正在嘗試上面的宏方法,但努力將發件人地址讀入 mutt 中的變數。宏是正確的方法嗎?將消息頭讀入變數的正確方法是什麼?
不幸的是,不可能從函式中填充變數。即使你能夠呼叫 function
<display-address>
:push @
,:exec display-address
或者在 neomutt 中使用 lua - 它也會顯示在底部欄中,但變數保持為空。今天在#neomutt IRC 上諮詢了這個問題後,現在最好的選擇是使用臨時文件。
- 此宏將通過管道將消息傳遞給返回 的 formail,將其
from header
傳遞給 awk 以僅獲取電子郵件地址並將輸出重定向到 /tmp/sender- 使用 /tmp/sender 的內容設置變數 $my_sender
- 使用 $my_sender 限制索引
macro index,pager * \ "<pipe-message>formail -X from:|awk -F'[<>]' '{print $2}'>/tmp/sender<enter>\ :set my_sender=\"`cat /tmp/sender`\"\n\ l~f \"$my_sender\"\n" \ "Filter Messages Like"
要求:郵箱
或者您可以使用任何其他命令從郵件中解析電子郵件地址。
編輯:每個 neomutt 會話僅工作一次。宏內部的變數擴展可能存在問題,因為它在雙引號中並且必須是這種方式。所以這仍然可能是不可能的,至少很容易。