Postfix + MySQL + PostfixAdmin でバーチャルドメイン運用

提供:maruko2 Note.
移動: 案内, 検索

Postfix の設定は、/etc/postfix/ ディレクトリ内のファイルを使い設定する。

main.cf
Postfix 基本の設定
master.cf
Postfix 各デーモンの動作設定

今回は、Postfix の検索テーブル(ドメインやユーザの情報を記録するデータベース)として MySQL データベースを使い、MySQL のデータベースへの追加・編集は、PostfixAdmin の Web インターフェースからおこなう。


Postfix MySQL PostfixAdmin の関係


目次

main.cf の設定

mydestination =
#local_transport = virtual
#virtual_transport = virtual  #デフォルト値
 
## Virtual
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
#virtual_alias_domains = $virtual_alias_maps  #デフォルト値
virtual_minimum_uid = 10000
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000
 
### VDA
virtual_create_maildirsize = yes
virtual_mailbox_limit = 0
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_quota_maps.cf
virtual_mailbox_limit_override = yes
virtual_mailbox_limit_inbox = no
virtual_maildir_extended = yes
#virtual_maildir_suffix = Maildir/
#virtual_trash_count = yes
#virtual_trash_name = ".Trash"
#virtual_maildir_limit_message = "Sorry, maximum quota reached!"
virtual_overquota_bounce = yes
 
## soft quota settings
#message_size_limit = 10240000 #default 10MB 
#mailbox_size_limit = 51200000 #default 50MB
message_size_limit = 0
mailbox_size_limit = 0
mydestination =
ローカルだとみなすドメインのリスト。そのため、バーチャルドメインをリストしてはいけない。
(バーチャル運用時は空白にしておく。)
local_transport = virtual
デフォルト: local$myhostname
virtual の場合、すべてのメールがバーチャル配信されるため、ローカル宛のメールを配信することができない。
local の場合、ローカル宛、バーチャル宛を区別して配信することができる。
virtual_transport = virtual
デフォルト: virtual
$virtual_mailbox_domains パラメータ値にマッチするドメイン宛の、デフォルトのメール配送 transport。
virtual_mailbox_base = /home/vmail
バーチャルメールボックスのルートディレクトリ。
virtual_mailbox_domains = mysql
/etc/postfix/mysql_virtual_mailbox_domains_maps.cf
$virtual_transport メール配送 transport を使って配送されるドメインのリスト。$virtual_mailbox_maps で受信者アドレスを確認し、存在しない受信者宛のメールを拒否します。
virtual_mailbox_maps = mysql
/etc/postfix/mysql_virtual_mailbox_maps.cf
$virtual_mailbox_domains にマッチするドメインの全ての有効なアドレスを持つ、オプションの検索テーブル。
virtual_alias_maps = mysql
/etc/postfix/mysql_virtual_alias_maps.cf
特定のメールアドレスやドメインを他のローカルまたはリモートアドレスにエイリアスする、オプションの検索テーブル。
virtual_alias_domains = $virtual_alias_maps
virtual_minimum_uid = 10000
ユーザ ID の最小値
virtual_uid_maps = static
10000
メールボックスのユーザ ID 。UNIX アカウントとして存在しなくてもよい。
virtual_gid_maps = static
10000
メールボックスのグループ ID 。UNIX アカウントとして存在しなくてもよい。

Postfix-2.3.3-VDA_README.txt

メールボックスが作成されるディレクトリを作成

単にディレクトリを作成するだけよりも、ユーザを作成しておいた方がよい。

ユーザ名 vmail
ユーザ ID 10000
グループ名 vmail
グループ ID 10000
ホームディレクトリ /home/vmail
シェル /sbin/nologin
[root]# groupadd -g 10000 vmail
[root]# useradd -d /home/vmail -g vmail -m -s /sbin/nologin -u 10000 vmail
単にディレクトリを作成するだけならば
[root]# mkdir /home/vmail
[root]# chown -R 10000:10000 /home/vmail

MySQL データベースに接続するための設定ファイル

main.cf のバーチャル設定で指定した、MySQL データベースへ接続するための設定ファイルを /etc/postfix/ ディレクトリ内に作成する。

user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username

参考サイト

Postfix 設定パラメータ (2.1 が読みやすい)
http://www.postfix-jp.info/trans-2.1/jhtml/postconf.5.html
Postfix バーチャルドメインホスティング Howto
http://www.postfix-jp.info/trans-2.3/jhtml/VIRTUAL_README.html
Postfix MySQL Howto
http://www.postfix-jp.info/trans-2.3/jhtml/MYSQL_README.html
mysql_table(5)
http://www.postfix-jp.info/trans-2.2/jhtml/mysql_table.5.html
LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数