1

さまざまな電子メールクライアントを使用してメールを読んだり送信したりするので、通常はThunderbirdフィルター機能によって実行されるフォルダーに電子メールを移動するようにprocmailを設定したいと思います。

電子メールユーザーの.procmailrcファイルのprocmailに次のコードを使用することでそれを実行できることを知っています。

:0:
* ^From:.test@host.name.com
myfolder

しかし、私はその特定の「myfolder」に移動したい約50の電子メールアドレスのリストを持っています。

だから使用することによって

:0:
* ^From:.first@mail.com
* ^From:.second@mail.com
jimsmail

procmailはAND演算子を使用してそれらを解釈するため、役に立ちません。したがって、Fromがfirst @ ... AND second @ ...の場合、上記のコードは真になりますが、これは決して真にはなりません。

では、OR演算子を使用するにはどうすればよいですか。

実際、私はすべての電子メールアドレスがある単純なテキストファイルを持っています。procmailがそのファイルで準備ができていて、Fromがファイルの少なくとも1行と一致するかどうかをチェックする機能があれば、電子メールを「myfolder」に移動できます。

何かのようなもの

 :0:
 * ^From:file(email.txt)
 myfolder

これまたは同様の何かが可能であるならば、何かをします。procmailrcファイルにこれらの3行を50回追加したくありません。

4

2 に答える 2

2

Procmailは正規表現を使用するため、アドレスを|文字で区切ることができます。

:0:
* ^From:.((first|second|third)@mail.com|(fourth|fifth)@othermail.com)
myfolder

動作します。50個すべてが1行になっていると、少し面倒になる可能性があります。

于 2010-10-20T10:14:15.457 に答える
2

私は解決策を見つけました。このソリューションでは、すべての電子メールアドレスを1行にまとめた単純な電子メールテキストファイルを使用できません。

私の.procmailrcのコードは次のとおりです。

EMAILFILE=/path/to/my/emailfile
FROM=`formail -xFrom: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'`
:0
* ? fgrep -qxis $FROM $EMAILFILE
myfolder
于 2010-10-21T12:40:36.040 に答える