メールの振り分けをしてくれるソフトウェア。
設定ファイルにルールを記載するとよきに計らってくれる。
yum install procmail
# procmailのパス調べる
which procmail
=> /bin/procmail
# main.cfに追記する
vi /etc/postfix/main.cf
mailbox_command = /bin/procmail
# postfix再起動
systemctl restart postfix
vi ~/.forward
"|IFS=' ' && exec /bin/procmail -f- || exit 75 #username"
chown username:username ~/.forward
vi /home/username/.procmailrc
# ここにレシピを記載する
基本的には、始まり・条件・アクションの3行。
条件が複数の場合は複数行で記載する。
:0フラグ
*条件の正規表現
アクション
:0 から始まる行は始まりの合図。
フラグをつけて実行モード的なものを設定できる。
- H デフォルト(ヘッダだけ)
- B ボディだけ
- HB ヘッダとボディの両方
- D 大文字と小文字を区別
- c コピーを残す
- f パイプをフィルタとみなす。前処理できる。
- w プログラムの終了を待つ。
- :[ロックファイル] ロックファイルを使えます。
ロックファイルとは
排他処理に使うファイル。使用中のフラグ的な。
例
:0fw
正規表現で条件を書く
例
*^from:.*hoge
条件に一致したやつをどうするか
- ! 指定したアドレスに転送
- | プログラムの実行(標準入力に処理したやつがはいる)
- ディレクトリ ディレクトリに格納する
- /dev/null メッセージ破棄
例
$SPAMDIR
Fromにspamの文字を含むメールをspamディレクトリにいれる。
vi /home/username/.procmailrc
# 環境変数設定
SHELL=/bin/bash
PATH=/bin:$HOME/bin:/usr/bin:/usr/local/bin
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
SPAMDIR=$MAILDIR/spam/
LOGFILE=$MAILDIR/log/procmail.log
# シンプルなレシピ設定
:0
*^from:.*spam
$SPAMDIR
# SpamAssassinを実行させる
# f 処理をパイプ
# w コマンドの実行が終わるまで待つ
# spamassassin.lockという名前のロックファイルを使う
# spamcというのはspamassassinのクライアント
:0fw: spamassassin.lock
|/bin/spamc
# Spamと判定されたメールをSpamディレクトリへ
:0
*^X-Spam-Flag: YES
$SPAMDIR
http://www.jaist.ac.jp/~fjt/procmail.html https://linuxjm.osdn.jp/html/procmail/man5/procmailrc.5.html