Postfix の設定と起動確認
次に postfix の設定を行うのであるが、まず配送先のディレクトリと配送用のシステムユーザを作成する。
ユーザ作成
配送用システムユーザは以下のとおりに設計する。
ユーザ名 | uid | gid | ホーム |
---|---|---|---|
vmail | 501 | 501 | /var/vmail |
$ sudo groupadd -g 501 vmail $ sudo useradd -g vmail -u 501 -s /bin/false -d /var/vmail vmail $ sudo mkdir /var/vmail $ sudo chown vmail:vmail /var/vmail $ sudo chmod 771 /var/vmail
postfix の main.cf の設定
次にキモの部分である main.cf を設定する。実運用では足らないのだが、テスト用にとりあえずこれだけ。
$ cd /etc/postfix $ sudo vi main.cf #-------------------------------- # * K I H O N * #------------------------------- # ホスト名・ドメイン名・送信元 myhostname = niboshi.kakitsubata-ayame.net mydomain = kakitsubata-ayame.net myorigin = $myhostname # 最終配信先…バーチャルの場合は設定しないように設定する # $myhostname と書けば良さそうだが、今回バーチャルでそちらも設定するので書かないこと! mydestination = # ネットワーク設定 inet_interfaces = all mynetworks = 192.168.1.0/24, 127.0.0.0/8 # エイリアス alias_maps = hash:/etc/mail/aliases alias_database = hash:/etc/mail/aliases # デバッグ用 debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 # Maildir 形式を指定。 / を忘れないこと home_mailbox = Maildir/ # バーチャル配信を全てに適用 local_transport = virtual virtual_transport = virtual # メールの配送先の実ディレクトリ virtual_mailbox_base = /var/vmail # アカウント管理DBへのアクセスをつらつらと書く virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_alias_domains = $virtual_alias_maps virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf local_recipient_maps = $virtual_mailbox_maps # メール配信に使う UID/GID 等 virtual_minimum_uid = 501 virtual_uid_maps = static:501 virtual_gid_maps = static:501
また MySQL で参照出来るように以下の設定ファイルを作成する。
$ sudo vi mysql_virtual_alias_maps.cf user = postfix password = authpass hosts = localhost dbname = postfix query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
$ sudo vi mysql_virtual_domains_maps.cf user = postfix password = authpass hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
$ sudo vi mysql_virtual_mailbox_maps.cf user = postfix password = authpass hosts = localhost dbname = postfix query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
すべて書き終わったら、生パスワードが外から見えないように権限を設定しておく。
$ sudo chgrp postfix mysql_virtual_* $ sudo chmod 640 mysql_virtual_* $ ls mysql_virtual_* -l -rw-r----- 1 root postfix 141 Mar 29 07:26 mysql_virtual_alias_maps.cf -rw-r----- 1 root postfix 162 Mar 29 07:27 mysql_virtual_domains_maps.cf -rw-r----- 1 root postfix 147 Mar 29 07:28 mysql_virtual_mailbox_maps.cf
起動と配送確認
すべて設定したら postfix サービスを起動する。
$ sudo /etc/init.d/postfix start
その後 postfixadmin に管理者 ID でログインし、メール送信タブからメールを送って配送確認を行う。うまく行ったかどうかは、ログと配送先のディレクトリの目視で確認出来る。
うまくいっていたら引き続き POP/IMAP の設定に入る。