前回はPostfixのインストールまで行いましたので、今回はPostfixの設定まで行います。
6. ユーザを追加
バーチャルドメインで受けたメールを処理するユーザを追加します。
# groupadd -g 10000 vuser # useradd -u 10000 -g vuser -d /var/spool/postfix/vhosts vuser # chmod 771 /var/spool/postfix/vhosts7. main.cfを設定
# cd /etc/postfix # vi main.cf
以下の内容で設定します(赤字の箇所はその下で設定します)。
queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix myhostname = mail.DOMAIN mydomain = DOMAIN myorigin = $mydomain mydestination = relay_domains = $mydestination inet_interfaces = all inet_protocols = all local_transport = virtual virtual_transport = virtual virtual_mailbox_base = /var/spool/postfix/vhosts virtual_mailbox_domains = $mydomain virtual_minimum_uid = 10000 virtual_uid_maps = static:10000 virtual_gid_maps = static:10000 mailbox_size_limit = 10485610 message_size_limit = 10485610 transport_maps = hash:/etc/postfix/transport_maps unknown_local_recipient_reject_code = 550 mynetworks = 127.0.0.0/8 alias_maps = hash:/etc/aliases,regexp:/etc/postfix/aliases.reg alias_database = hash:/etc/aliases home_mailbox = Maildir/ smtpd_banner = $myhostname ESMTP 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 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop
8. transport_mapsを設定
transport_mapsを編集します。
# vi transport_maps
下記の内容を入力し、保存します。
DOMAIN local
transport_maps.dbを作成します。
# postmap /etc/postfix/transport_maps
9. aliases.regの設定
正規表現でメールを振り分けるためにaliases.regを編集します。
# vi aliases.reg
rootへのメールは管理者に転送しておきます。
/root(@DOMAIN)?$/ 転送先メールアドレス /^(.+)(@DOMAIN)?$/ "| php /home/script/test.php"
10. Postfixの設定読込
# /etc/init.d/postfix reload
上記の設定で、DOMAIN宛のメールすべてが/home/script/test.phpに渡されます(root以外)。次回はtest.phpの作成を行い、From、To、Subject等を取得する処理を行います。
ピンバック:Postfixでメール受信後にPHPプログラムで処理を行う(1/3) | 菊地崇仁ブログ「ポイ探社長のブログ」
ピンバック:5月28日の注目記事 | Javable.Jp