匿?メール
ひょんなことから匿名メールを送る仕組みを急造する。
準備物:
- Sendmail相当 (Postfix) SMTPサーバ
- Procmail
- Procmail同梱のFormail
.forward
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #[username]"
Sendmail/Postfixのユーザ環境での転送処理。ここでとりあえずProcmailに転送します。ちなみに余談で、Procmailへ渡すのは"| /usr/bin/procmail" で良いのだけれど、こう書く一昔前の慣わしだそうです。
玉虫色に染まれ!さん:
procmail用の.forward設定の源流を探るにて詳しい説明が。とりあえず一昔前のSMTPサーバが同じ内容の.forwardを誤解しないようにとのこと。
.procmail
PATH=$HOME/bin:/usr/bin:/usr/local/bin
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
LOGFILE=$MAILDIR/procmail.log
LOCKFILE=$MAILDIR/procmail.lock
SENDMAIL=/usr/sbin/sendmail
FROM=anonymous@example.com
FORWARD=target@example.com
MASK=[MASK]
:0
* ^Subject: Anonymous
| formail -A "X-Loop: $FROM"\
-I "From: $FROM"\
-I "Return-Path: $FROM"\
-I "Reply-To: $FROM"\
-I "To: $FORWARD"\
-I "Received: $MASK"\
-I "User-Agent: $MASK" \
| $SENDMAIL -i $FORWARD
条件: "Subject: Anonymous"で始まるものについて、X-Loop:ループ検知用ヘッダ追加 (-A) 後、送り主情報 (From:) を用意したアドレスへ塗り替え (-I) 、User-Agent:、Received:等、送り主を特定できる情報を可能な限りダミーで塗り替える。(-I) そしてその結果を登録された送り先へ送るといった内容。至極単純。Procmailインストール時に入るFormailですが、これが非常にお手軽なうえ強力で・・・便利です。
ところで、Procmailのレシピ中パイプ通した時に\の改行を加えると挙動が変わって配送されなかったり。それに故実際は1行で繋いでいる訳なのだがー 何故だろう。
Posted by uso8000k
| Categories:
Tech
| [
ツィート(笑)]
| [
]