Postfix で メールのエイリアス(転送)設定をする方法(スクリプトあり)

自分でメールサーバーを運用するメリットととして、「メールアドレスを自由に取得できる」ことがあります。しかも、受信メールを複数のメールボックスではなく、一つのメールボックスで管理することができます。

これはスパムメールに対するアドバンテージになります。サービス開始のための会員登録にメールアドレスが必要になることがありますが、このメールアドレスの登録でスパマーにアドレスが流出することがあります。

その対策として、gmailやフリーメール等で「捨てアドレス」を取得する人も多いでしょう。しかし、捨てアドレスを増やすと受信箱の管理が煩雑になってしまいます。

そこでおすすめなのが、サービスごとのメールアドレスをエイリアスで作ることです。もしそのメールアドレスがスパムの餌食になっても、エイリアスを解除すればスパムとおさらばできます。また、どこのサービスがメールアドレスをスパマーに漏らしたかもわかります。

スポンサーリンク

エイリアスメールアドレスの作り方

作り方は簡単です。/etc/aliases にエイリアスアドレスと、それを受信する実在するメールアカウントを記載し、/bin/newaliases を実行するだけです。
alias というアドレスに届いたメールを cassis というユーザのメールボックスに送る場合のコマンドの例は以下のようになります。(ropot ユーザで実行する必要があります。)

cp /etc/aliases /etc/aliases.bak
echo "alias:       cassis" >> /etc/aliases
/bin/newaliases

覚えるのが面倒な人は、以下のスクリプト(set_alias.sh)を利用してみてください。エイリアス名 と 実ユーザ名 を引数として実行するだけです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
HELP="\
Usage:
  bash $0 alias user
"

main() {
    local alias=$1
    local user=$2

    cp /etc/aliases /etc/aliases.bak.`date '+%Y%m%d%H%M%S'`
    cat /etc/aliases | grep -v "^$alias:" > /etc/aliases
    echo "$alias:               $user" >> /etc/aliases
    /bin/newaliases
}

if [ $# -ge 2 ] ; then
    main "$@"
else
    ! echo -n "$HELP"
fi

上のスクリプトを set_alias.sh という名前で保存して、root ユーザーで実行します。実行例は以下の様になります。(こちらも、alias というアドレスに届いたメールを cassis というユーザのメールボックスに送る場合の例です。)

bash set_alias.sh alias cassis

動作環境

/etc/aliases は MTA 共通のようなので、Postfix 以外でも動くと思います。私が動作確認しているのは CentOS 7 と Postfix 2.10系 です。