「Postfix」の設定を行います。
(1)バーチャルドメインで受信したメールを処理するユーザーを作成する。
[root@mail1 ~]# groupadd -g 10000 vuser ← # グループIDを10000に設定 [root@mail1 ~]# useradd -g vuser -u 10000 vuser ← # ユーザIDを10000に設定 [root@mail1 ~]# cd /home/ [root@mail1 home]# chmod 771 vuser/ ← # 「vuser」ディレクトリのパーミッション変更
(2)「Postfix」が「MySQL」にアクセスするための設定ファイルを作成する。
[root@mail1 ~]# vi /etc/postfix/mysql_virtual_alias_maps.cf user = postfixadmin password = postfixadmin hosts = localhost dbname = postfix query = SELECT goto FROM alias WHERE address='%s' AND active = '1' #expansion_limit = 100 [root@mail1 ~]# vi /etc/postfix/mysql_virtual_domains_maps.cf user = postfixadmin password = postfixadmin hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' AND active = '1' [root@mail1 ~]# vi /etc/postfix/mysql_virtual_mailbox_maps.cf user = postfixadmin password = postfixadmin hosts = localhost dbname = postfix query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1' [root@mail1 ~]# vi /etc/postfix/mysql_virtual_mailbox_limit_maps.cf user = postfixadmin password = postfixadmin hosts = localhost dbname = postfix query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
(3)(2)で作成したファイルのパーミッションを変更する。
[root@mail1 ~]# chmod 640 /etc/postfix/mysql_virtual_alias_maps.cf [root@mail1 ~]# chmod 640 /etc/postfix/mysql_virtual_domains_maps.cf [root@mail1 ~]# chmod 640 /etc/postfix/mysql_virtual_mailbox_maps.cf [root@mail1 ~]# chmod 640 /etc/postfix/mysql_virtual_mailbox_limit_maps.cf [root@mail1 ~]# chown root:postfix /etc/postfix/mysql_virtual_alias_maps.cf [root@mail1 ~]# chown root:postfix /etc/postfix/mysql_virtual_domains_maps.cf [root@mail1 ~]# chown root:postfix /etc/postfix/mysql_virtual_mailbox_maps.cf [root@mail1 ~]# chown root:postfix /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
(4)「Postfix」の設定を行う。
[root@mail1 ~]# vi /etc/postfix/main.cf myhostname = mail.mail1.com mydomain = mail.com myorigin = $mydomain inet_interfaces = all mydestination = mynetworks = 127.0.0.1, 192.168.0.0/24 # メールを送信するIP許可 relay_domains = $mydestination home_mailbox = Maildir/ smtpd_banner = $myhostname ESMTP unknown ----------最終行に追加---------- local_transport = virtual virtual_transport = virtual virtual_mailbox_base = /home/vuser virtual_mailbox_limit = 0 virtual_minimum_uid = 10000 virtual_uid_maps = static:10000 virtual_gid_maps = static:10000 virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf, virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf, virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf virtual_mailbox_limit_override = yes virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later. virtual_overquota_bounce = yes #----------以下は任意設定---------- maximal_backoff_time = 800s ← # 遅延メッセージの配送を試行する最大の時間間隔 minimal_backoff_time = 100s ← # 遅延メッセージの配送を試行する最小の時間間隔 bounce_queue_lifetime = 60m ← # 配送できないと見なすまでに、バウンスメッセージがキューに入っている最大の時間 maximal_queue_lifetime = 60m ← # 配送できないものとして送り返すまでに、メッセージがキューに入っている最大の時間 message_size_limit = 10485760 ← # 最大送信可能メールサイズ設定
(5)「Postfix」を再起動する。
[root@mail1 ~]# /etc/rc.d/init.d/postfix restart postfix を停止中: [ OK ] postfix を起動中: [ OK ]