Gmailの「このタイプのメールフィルタリング」機能を複製したいと思います。デフォルトでは、私はmuttに*キーをバインドし、同じ送信者(または;接頭辞付きの送信者)が送信したメッセージの表示を「制限」できるようにしたいと思います。
macro index * "<enter-command>set sender=display-address<enter><limit>$sender<enter>" "Filter Messages Like"
私は上記のマクロアプローチを試していますが、送信者アドレスをmuttの変数として読み取るのに問題があります。マクロ経済の発展は正しい方向ですか?メッセージヘッダを変数として読み取る正しい方法は何ですか?
ベストアンサー1
残念ながら、関数内の変数を埋めることは不可能です。関数を呼び出すことも、<display-address>
:push @
neomutt:exec display-address
で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"
要件:Eメール
または、他のコマンドを使用してメッセージから電子メールアドレスを解析することもできます。
編集:neomuttセッションごとに1回だけ機能します。二重引用符で囲む必要があるため、マクロ内の変数の拡張に問題がある可能性があります。したがって、まだ可能ではありません。少なくとも不可能です。