qmailで件名にタグを追加して転送する

qmailで運用されているメインのメールアドレスに届いたメールの件名を変更し、サブのメールアドレスに転送したい。ここでは、ハッシュタグ(ここでは仮に#main)を件名の最後に追加して、サブのメールアドレスに転送する手順を記す。

以下の設定だとする

  • qmailサーバー:mailserver.com
  • 転送先アドレス:uname@sub.com

1. まずqmailサーバーにログインして、.qmailをコピーし保存しておく

$ ssh username@mailserver.com
$ cp .qmail .qmailold

2. procmailのコマンドがインストールされていることを確認する

$ which procmail
/usr/bin/procmail

3. procmailの設定ファイルを作る。設定ファイルを開き

$ vim .procmailrc

以下を書き込む

SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin
MAILDIR=$HOME/Maildir
LOGFILE=$MAILDIR/procmail.log
LOCKFILE=$MAILDIR/lockmail

SUBJECT=`formail -c -xSubject:`

#件名に#mainが含まれていなかったら、最後に#mainを追加して転送する
:0 c
* !^Subject: .*\#main.*
|formail -i "Subject: $SUBJECT #main" |sendmail uname@sub.com

#件名に#mainが含まれていたら、そのまま転送する
:0 c
* ^Subject: .*\#main.*
! uname@sub.com

4. 設定ファイル.qmailにprocmailを使用する設定を追加する。

$ echo "|preline `which procmail`" >> .qmail

以上でOKのはず。以下を参考にした。

参考

  1. qmailからprocmailを使う
  2. procmailの設定
  3. procmailの設定2