Postfixをインストールする

Posted by Tatsuyano on Tue, Sep 9, 2014
In
Tags middleware

仕事ではじめて Postfix を使ったので、インストール方法などを残しておきます。

Postfixのインストール

まず Postfix のインストール前に Sendmail がインストールされている場合は止めておきます。

$ sudo chkconfig sendmail off
$ sudo /etc/init.d/sendmail stop

$ sudo yum -y install postfix
$ sudo chkconfig --add postfix
$ sudo chkconfig on postfix
$ sudo /etc/init.d/postfix start

メールサーバー(MTA)を postfix に切り替え

$ sudo update-alternatives --set mta /usr/sbin/sendmail.postfix


postfix の設定

設定は主に/etc/postfix/配下の3ファイル

/etc/postfix/main.cf (設定全般)

# mydomainを設定しない場合、メールのホスト名としても使われる(と思われる)
myhostname = hogehoge.net

# メールをローカルで受信するドメイン名を設定
mydestination = $myhostname

# 全てのメールを受け取る
inet_interfaces = all

# ipv6、ipv4 両方許可する
inet_protocols = all

# コメントアウト
#mynetworks_style = host

# LAN内のネットワークを指定
mynetworks = 127.0.0.0/8

# Telnet等でアクセスした際にpostfixのバージョン情報の表示
smtpd_banner = $myhostname ESMTP SERVER...

# 許可
allow_mail_to_commands = alias,forward,include
allow_mail_to_files = alias,forward,include
allow_min_user = yes

# 別のドメイン mail.hogehoge.net でも受信する
virtual_maps = hash:/etc/postfix/virtual

# 受信したメールを正規表現(regexp)で指定ユーザに振り分ける
alias_maps = hash:/etc/aliases,regexp:/etc/postfix/aliases.reg

/etc/postfix/aliases.reg (メールを受信するユーザの設定)

/^support-[0|1](@hogehoge.net)?$/ support
/^support(@hogehoge.net)?$/ support

メールアドレスにパラメータを含めたい場合、aliases.regに正規表現を使って、受信したメールを指定のユーザ(メールアドレス)に送ることができる。
例では support-1@hogehoge.net宛のメールをsupport@hogehoge.netと同じユーザ(メールアドレス)に送る。

/etc/postfix/virtual (ドメインの設定)

@mail.hogehoge.net  support

サブドメインなど、別ドメインも指定したい場合に設定する。
例では、@mail.hogehoge.netというドメインに来たアドレスもsupportユーザに配送されるようにしている。

またvirtualの設定を反映させるには、postmapコマンドでvirtual.dbを作成し、postfix を再起動する。

$ sudo postmap /etc/postfix/virtual
$ sudo /etc/init.d/postfix reload


参考サイト