マクロはmutt
現在のメッセージからいくつかの属性を取得し、変数として使用できますか?以下は、私が取得したい属性を持つ潜在的なマクロのいくつかの例です。イタリック体。
- GPG暗号化の削除最新ニュースのため。すぐに
decrypt-save
到着現在のメールメッセージが含まれています。 - 現在のメッセージを保存タイトルと日付が書かれたファイル。つまり
| cat > /tmp/filename
、ファイル名はdate_subject
。 - メッセージをメールボックスに保管してください
archive-year
。年度メッセージの年によって異なります。 (あります方法メッセージの日付ではなく、現在の日付に基づいてこれを行います。 )
答え1
似ているその他の回答一般的な意味で属性を取得する方法を理解していませんが、これは2番目の例のハッキーソリューションです。
標準入力を介して電子メールを受け入れ、日付と件名を抽出します/path/to/save/email/date_subject
。
#!/bin/env bash
message=$(cat)
mail_date=$(<<<"$message" grep -oPm 1 '^Date: ?\K.*')
formatted_date=$(date -d"$mail_date" +%y%m%d)
# Get the first line of the subject, and change / to ∕ so it's not a subdirectory
subject=$(<<<"$message" grep -oPm 1 '^Subject: ?\K.*' | sed 's,/,∕,g')
# decode base64 (UTF-8)
if [[ "$subject" =~ ^=\?[Uu][Tt][Ff]-8\?B\?.*?= ]]; then
nofront="$(echo "${subject#=\????-8\?B\?}")"
todecode="$(echo "${nofront%\?=}")"
subject="$(<<<"$todecode" base64 --decode)"
fi
if [[ $formatted_date == '' ]]; then
echo Error: no date parsed
exit 1
elif [[ $subject == '' ]]; then
echo Warning: no subject found
fi
echo "${message}" > "$1/${formatted_date}_${subject}.eml" && echo Email saved to "$1/${formatted_date}_${subject}.eml"
で次の関数muttrc
にバインドします。S
macro index,pager S "| /path/to/script /path/to/save/email<enter>"
複数行のタイトルの最初の行のみが使用されます。
答え2
メッセージから属性を取得する方法がわかりませんが、少なくとも最初の例では別の解決策があります。
現在のメールボックスへのショートカットとして使用できるため、現在のメールボックスにアクセスするには、^
次のものを使用できます。decrypt-save
macro index <F7> <decrypt-save>^<Enter>y<Enter>