対象とする環境は、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 SENDERxfilter “/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とかパッチを当てていたのは、はるか昔のことだ。(笑