条件
- ec2環境で、postfixを使ったメールサーバー
- .forwardとshellスクリプトだけで処理
補足
※vacationを使ってやりたかったけど、メール送信出来ているときとそうでないときがあり、
不安定だったため、仕方なく以下のようにスクリプトで対処した。
スクリプト
.forward
\{USER}, "|sh /home/{USER}/reply.sh"
reply.sh
# !/bin/sh
# 実行ディレクトリ
dir=$(cd $(dirname $0) && pwd)
# fromアドレス
from="no_reply@example.com"
# subject
subject="自動返信メール件名"
# body
body=`cat << EOF
自動返信メール本文
※返信できません
EOF
`
# 自動返信をスキップするFromのアドレスを正規表現で記載
invalid_address="MAILER-DAEMON"
# テンプレート関数
mail_tpl () {
    # subject, bodyをnkfでエンコード
    subject2=`echo $subject | /usr/local/bin/nkf -Mj`
    body2=`echo "$body" | /usr/local/bin/nkf -j`
    mail=`cat << EOF
From: $from
To: $1
Subject: $subject2
$body2
EOF
`
    echo "$mail"
}
# 標準入力有無の判別
if [ -p /dev/stdin ]; then
    # 標準入力取得
    in=$(cat -)
    # Fromアドレスを抽出
    to=`echo "${in}" | egrep -i "^From:" | sed -e "s/From:\s*\(.*\)/\1/g"`
    # スキップ判別
    invalid_num=`echo $to | egrep -i $invalid_address | wc -c`
    if [ $invalid_num -gt 0 ]; then
        exit
    fi
    # メール送信
    echo "`mail_tpl \"$to\"`" | /usr/sbin/sendmail -it
else
    echo "no stdin"
fi
