* Procmailを使ってメールを自動振り分けする

CNS Printer Statusを作る際、CNSサーバ側でメールが来るたびにjsonを生成するスクリプトを書いた。

ただその時に厄介だったのが、Printerでないメールの中から毎回最新のPrinterメールを探しjsonを生成しなければならないことだった。

PHPでscandir(hogehoge)しようにも、cronでそんなん回して負荷かけて文句言われたらなぁー…と思って考えていたところ、ホームディレクトリにprocmaillogという見慣れないファイルを発見した。

ggってみたところ、どうやらメールの振り分けを自動化するprocmailのlogファイルらしく、なぜ突然出てきたのかはともかくとしてこれを使わない手は無いと思い、さっそく設定してみた。

いじる前のファイル内容はこんな感じ(大人の事情で一部編集してます)。

              PATH=/bin:/usr/bin:/usr/local/bin
              MAILDIR=$HOME/Hogehoge
              DEFAULT=$MAILDIR/
              LOGFILE=$HOME/procmaillog
              LOCKFILE=$HOME/.lockmail
              :0H:
              * ^X-Ironport: SPAM
              $MAILDIR/.SPAM/
              

:0H:から振り分け条件の宣言らしい。それ以前は普通に変数宣言。

んで、* ^X-Ironport: SPAMが対象メールの設定、下の一行が振り分け先のフォルダですね。

なるほど、簡単っちゃ簡単。

ってことで以下の二行を追加。

              * ^From.:*hogehoge@hoge.hoge.ac.jp
              $MAILDIR/.HOGEHOGE/
              

この2行で“hogehoge@hoge.hoge.ac.jp"から来たメールを”$MAILDIR/.HOGEHOGE"フォルダーに移動させるという意味になる。

ちなみにFromの部分は正規表現なら何でもいいらしい。賢い。

これでThunderbirdいらずですな。

Thunderbirdの設定全部.procmailrcに移そうかな。スマホで見る時に振り分けられてたらテンションあがる。


※この記事は WordPress に投稿した記事を変換したものです。一部不自然な表示があるかも知れません。ご了承ください。また、記事タイトル先頭の * は WordPress から移行した記事である印です。

comments powered by Disqus