[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[postfix-jp: 3728] Re: ヘッダーの From のみ書き換えられない
- Subject: [postfix-jp: 3728] Re: ヘッダーの From のみ書き換えられない
- From: ikari-ml@xxxxxxxx
- Date: Mon, 15 Feb 2010 00:34:32 +0900
碇です
少し試してみました
sender_canonical_mapsで書き換えられないか試してみたのですが
sender_canonical_classes = header_sender
とすると全く書き換えが行われず
sender_canonical_classes = envelope_sender,header_sender
sender_canonical_classes = envelope_sender
などenvelope_senderがないと書き換えられないようです
masquerade_classes
も同様のようです
filterを書けば動作するかテストしてみました
http://www.postfix-jp.info/trans-2.1/jhtml/FILTER_README.html
手順
filter ユーザーを追加
/var/spool/filter ディレクトリを作成しfilterユーザーだけrwにします
master.cfを以下のように変更
smtp inet n - - - - smtpd
-o content_filter=filter:dummy
(snip)
filter unix - n n - 10 pipe
flags=Rq user=filter argv=/usr/local/bin/filter -f ${sender} -- ${recipient}
grepとsedのところを必要に応じて変更すれば動作すると思います。
大体の手順は上記の通りです
動作するか試してみただけですので十分テストしてから運用してみてください
/usr/local/bin/filter
-----------------------------------------
#!/bin/bash
# Simple shell-based filter. It is meant to be invoked as follows:
# /path/to/script -f sender recipients...
# Localize these. The -G option does nothing before Postfix 2.3.
INSPECT_DIR=/var/spool/filter
SENDMAIL="/usr/sbin/sendmail -i " # NEVER NEVER NEVER use "-t" here.
# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
ARGV="$@"
shift $#
UNIQ_ID="`date +%s`_$$"
TMP_FILE="${UNIQ_ID}.mail"
REWRITE_FILE="${UNIQ_ID}.rewrite"
cd $INSPECT_DIR || {
echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }
test -e $TMP_FILE && rm -rf $TMP_FILE > /dev/null 2>&1
test -e $REWRITE_FILE && rm -rf $REWRITE_FILE > /dev/null 2>&1
# Clean up when done or when aborting.
trap "rm -f $TMP_FILE ; rm -f $REWRITE_FILE" 0 1 2 3 15
# Start processing.
cat >$TMP_FILE || {
echo Cannot save mail to file; exit $EX_TEMPFAIL; }
# Specify your content filter here.
# filter <in.$$ || {
# echo Message content rejected; exit $EX_UNAVAILABLE; }
OLD_IFS=$IFS
IFS=""
FLAG_REWRITE=FALSE
while read LINE;do
if [ $FLAG_REWRITE = FALSE ];then
echo $LINE | grep '^From:.*@hostname.example.co.jp' > /dev/null 2>&1
if [ $? -eq 0 ];then
echo $LINE | sed -e 's/From:\(.*\)@\(.*\)/From:\1@example.jp/'
FLAG_REWRITE=TRUE
else
echo $LINE
fi
else
echo $LINE
fi
done <$TMP_FILE> $REWRITE_FILE
IFS=$OLD_IFS
$SENDMAIL $ARGV <$REWRITE_FILE
exit $?
-----------------------------------------
On Thu, 4 Feb 2010 23:11:54 +0900 (JST)
村瀬 亨 <bocya0001@xxxxxxxxxxx> 様wrote:
> ぼちゃ と申します。
> お世話になります。
>
> 表題の件についてご教示いただきたくメールしました。
> 実現したいことは、
> hostname.xxxx.xx.jpのローカルからmailコマンドを使った
> 送信メールについて、
>
> エンベロープのFrom user@xxxxxxxxxxxxxxxxxxx
> ヘッダーのFrom user@xxxxxxxxxx
>
> としたいのですが、うまくいかず原因もつかめません。
> 何かわかることがありましたらご教示いただければと思います
> 。
--
碇 永志
<ikari-ml@xxxxxxxx>
_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxxxxxxxxxxxxxxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list
- References
-
- [postfix-jp: 3726] ヘッダーの From のみ書き換えられない, 村瀬 亨
[検索ページ]
[Postfix-JP ML Home]