メール移転の自動返送をmailbotでやる

対象とする環境は、FreeBSD(13R)+postfix+maildropがインストールされている。ついでにspamassassinも入っている。.mailfilterで環境に依存する部分を考慮すれば、Debian(buster)でも適用は可能であった。

~/.mailfilter に下記の1行を追加する。

cc “| mailbot -t $HOME/autoreply /usr/sbin/sendmail -t”

.mailfilter の全体はこんな感じ。user: mhorie-d で、FreeBSDのspamassassinのパスだ。

DEFAULT=”$HOME/Maildir”
# logfile “$HOME/maildrop.log”
import SENDER

xfilter “/usr/local/bin/spamc -f ${SENDER}”
if( /^X-Spam-Flag: YES/:h )
{
# to “$DEFAULT/.Junk/”
}

cc “| mailbot -t $HOME/autoreply /usr/sbin/sendmail -t”
cc “! mhorie-d@rpi3x.smbdom.local”

赤色部分が今回追記した部分。

なお、良く判らなかったというか、試行錯誤してしまったのが、sendmail -f ではなく sendmail -t としないと、送り先が指定されていない!と警告が出て、発信元にmailbotが返信できなかったこと。man mailbot にもsendmail -f と書いてあるにも関わらず。postfixのsendmail に置き換えたからか?

なお、このとき、~/autoreply を下記のように作る。

root@fbsd:~mhorie-d # cat autoreply
(自動応答メッセージ)
本メールアドレスはシステム変更のため移行中です。
   旧:mhorie@horie.is-a-designer.com
   新:horie@horie.is-a-designer.com
恐れ入りますが、アドレス帳の更新をお願いいたします。
2021年9月30日までの間は、
旧アドレスから新アドレスにメールを転送しますが、
10月1日に旧アドレスを廃止します。
宜しくお願いいたします。
root@fbsd:~mhorie-d #

日本語をviで操作するのが困難だったので、メモ帳からteratermにコピペしたら楽だった。

追記(21/05/13);
postfix付属のsendmailで標準出力のFrom:フィールドとかを解釈させるには、”sendmail -t “を使えとある。逆に、”sendmail -f “を使うときには、送り先を明示する必要がある。maildrop が吐いたエラーと符合する。
要は、mailbot が受信メールを解釈したうえで、標準出力にヘッダーつきの返信の出すので、それを”sendmail -t”に食わせれば良い、という理屈と解釈した。

http://www.postfix-jp.info/trans-2.3/jhtml/sendmail.1.html

https://qiita.com/bezeklik/items/adb5a988a47164f3d1ec

つーか、世の中、sendmailでなくpostfixが普通だと思ったら、そうでもないようだ。sendmailを卒業してqmailにして。pop before smtpとかパッチを当てていたのは、はるか昔のことだ。(笑

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です