postfixをとりあえず送信可能にする

postfixが入っていなかったら、yum install postfixとして入れておく。
初期設定は外部にメールが発信出来ないようになっているので、/etc/postfix/main.cfを編集する。

/etc/postfix/main.cf

myhostname = myhost.mydomain.tld
mydomain = mydomain.tld
myorigin = $myhostname
#inet_interfaces = localhost
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.0.0/16, 127.0.0.1
home_mailbox = Maildir/

※192.168.0.0/16はサーバーのネットワーク環境に応じて設定しておく。
inet_protocolsはIPv6環境から発信すると、gmailなどのRBLに登録されている場合に跳ねられるので、とりあえずipv4のみにしておいたほうが、安全だが、問題なければ、ipv6に対応しても良い。

mailコマンドが使いたければ、mailxなどをインストールしておくと便利かもしれない。

# yum install mail

ローカルメールを読み出す場合には以下を設定しておく。
mailxはデフォルトではメールスプール形式のメールを表示するようで、

/var/spool/mail/{user}

を参照するので、Maildir形式の場合は以下のようにMaildirのパスを設定すれば良い。

vim ~/.bash_profile
---
export MAIL=path/to/dir/Maildir
---
source ~/.bash_profile

他のメールを見たい場合は

mailx -f path/to/dir/Maildir

でも大丈夫。

とりあえず、初期ユーザーのディレクトリにMaildirが存在しなきても自動的に作成されるが、スケルトンを作成しておくと新規ユーザーを切る際に便利である。

# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
# chmod -R 700 /etc/skel/Maildir/

上記を指定しておくと、skelにしたがって、useradd hoge -g 100などとした場合に/home/hoge/Maildirが配置されることになる。

また、複数のドメイン宛のメールを受信する場合には、Aliasを切っておくと、受信が可能になる。
ここでは、簡単に、Aliasで対応する方法とした。

/etc/postfix/virtual

virtual.mydomain.tld       anything
user@virtual.mydomain.tld  user
admin@virtual.mydomain.tld root

# postmap /etc/postfix/virtual
上記を発行すると、viatual.dbが出来上がるので、これをmain.cfの中で参照するように指定しておく。

/etc/postfix/main.cf

virtual_alias_maps = hash:/etc/postfix/virtual

以上で、localhostから、

mail user@virtual.mydomain.tld

とすれば、外部へメールが発信できるようになり、myhost.mydomain.tldと、virtual.mydomain.tldあてのメールを受信できるようになる。

あとは、dovecotなり、saslauthdなりを設定して使う。