labunix's blog

labunixのラボUnix

FreeBSD10.1-RC4にPostfixをインストールしてみた。

■FreeBSD10.1-RC4にPostfixをインストールしてみた。
 システム通知用のメールを送信するだけの簡単なお仕事。

$ pkg search ^postfix
postfix-2.11.3_2,1
postfix-current-2.12.20141106_1,4
postfix-logwatch-1.40.03
postfix-policyd-sf-1.82_1,1
postfix-policyd-spf-perl-2.010
postfix-policyd-weight-0.1.15.2_2
postfix-postfwd-1.35_1
postfix-tls-2.11.3_2,1
postfix210-2.10.5,1
postfixadmin-2.3.7_1

$ su root -c 'pkg install -y postfix'
...
Would you like to activate Postfix in /etc/mail/mailer.conf [n]?y

■メールサーバの設定
 ドメイン、ホスト名は今回そのまま。

$ tail -1 /etc/hosts
192.168.41.128	bsd10	bsd10.localdomain

$ sudo postconf | grep ^my
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = localdomain
myhostname = bsd10.localdomain
mynetworks = 192.168.41.128/32 127.0.0.1/32
mynetworks_style = host
myorigin = $myhostname

■mynetworksはサブネットを許可しましょう。

$ sudo postconf -e 'mynetworks = 192.168.41.0/24 127.0.0.1/32'
$ grep ^mynetworks /usr/local/etc/postfix/main.cf
mynetworks_style = host
mynetworks = 192.168.41.0/24 127.0.0.1/32

■すべてのNICで受けて、554で拒否されなければ良い。
 複数NICがある場合は要検討。

$ /sbin/ifconfig | grep ^[a-z] | awk '{print $1}'
em0:
lo0:

$ sudo postconf | grep "^inet_interface\|^relay_domains"
inet_interfaces = all
relay_domains = $mydestination
relay_domains_reject_code = 554

■ユーザエイリアスの設定確認

$ sudo postconf | grep "^alias"
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases

■root宛のメールはログイン中のユーザに転送に変更。

$ echo -e "root:\t`whoami`" | sudo tee -a /etc/aliases > /dev/null
$ sudo postalias /etc/aliases && sudo newaliases

■ユーザのメールボックス

$ sudo postconf | grep "home_mailbox\|mailbox_command"
home_mailbox =
mailbox_command =
mailbox_command_maps =

■メールボックスの形式とprocmailを使うように変更。

$ sudo postconf -e 'home_mailbox = Maildir/'
$ su root -c 'pkg install -y procmail'
$ pkg info -l procmail | grep /bin/procmail
	/usr/local/bin/procmail
$ sudo postconf -e 'mailbox_command = /usr/local/bin/procmail'

$ grep "^home_mailbox\|^mailbox_command" /usr/local/etc/postfix/main.cf
home_mailbox = Maildir/
mailbox_command = /usr/local/bin/procmail

■転送先リスト
 ※他にサブドメインのメールサーバ等があれば。

$ sudo postconf | grep "^transport"
transport_maps =
transport_retry_time = 60s

■サービス起動

$ pkg info -l postfix | grep rc.d | grep _enable `xargs` | head -1
# postfix_enable (bool):	Set it to "YES" to enable postfix.

$ echo 'postfix_enable="YES"' | sudo tee -a /etc/rc.conf >/dev/null
$ sudo /usr/local/etc/rc.d/postfix start
postfix/postfix-script: starting the Postfix mail system

■送受信テスト

$ echo "test body" | mail -s "test subject mail" `whoami`@`hostname -f`

■確認

$ mail 
Mail version 8.1 6/6/93.  Type ? for help.
"/var/mail/labunix": 1 message 1 unread
>U  1 labunix@bsd10.locald  Sun Nov 16 20:10  15/505   "test subject mail"
& q