タイトル行の前に [LIST] を追加して正常に書き換えました。
:0fhw
* ^TO_[^<>@ ]+@example\.com\>
* ^Subject:\/.+
| /usr/local/bin/formail -I"Subject: [LIST]$MATCH"
これは成功し、次のようになります。
Subject: here is the subject line
入力する
Subject: [LIST] here is the subject line
[email protected]
しかし、次のようにタイトル行にユーザー部分を挿入したいと思います。
Subject: [LIST] [email protected] here is the subject line
$MATCH
...変数が1つしかありませんが、どうすればいいかわかりません!
formail
タイトル行を書き換える1行に2つの異なる変数を挿入するにはどうすればよいですか?
答え1
概念的には答えは簡単です。$MATCH
別の変数にコピーすることです。実際にはMATCH
レシピごとに1つしか取得できないため、実装はまだ少し不足しています。解決策は入れ子になったレシピを使用することです。
:0
* ^Subject:\/.+
{
subj=$MATCH
:0
* ^TO_\/[^<>@ ]+@example\.com\>
{
user=$MATCH
:0fhw
* user ?? ()\/.+@example\.com
| formail -I"Subject: [LIST] $MATCH $subj"
}
}
\>
最も内側のアプローチは、キャプチャされた変数の末尾から一致を切り取ることです。user
これは、タイトルに含めると確実に単純化できます。
へのフルパスをハードコードする必要がないように/usr/local/bin
注意して含めることができます。PATH
formail