Postfixを使ったメールサーバ構築.4/メールボックス〜postfixadminの設定

さて、随分と長い連載になりそうです・・・・
実際の設定はもう完了して稼働状態にありますが、こちらは少しゆっくりと進めましょう。
次にメールボックスの設定〜postfixadminの設定までです。

By: Pete

まず、メールボックスを準備します。
ここに各ドメインのメールボックスが作成されていきますので、容量に気をつけて下さい。
今回は”/home/vmail”にメールを保存していきます。
また、併せてメールボックスを管理するユーザを準備します。
[bash]
ディレクトリを作成します。
# mkdir /home/vmail
ディレクトリのパーミッションを設定します。
# chmod 770 /home/vmail
ユーザを追加します。この時、uidは事前に/etc/passwdファイルなどを調べて、重複しないものを指定しましょう。
今回は"101"が空いていたので、101を指定しました。
gidは"mail"を指定します。
# useradd -r -u 101 -g mail -d /home/vmail -s /sbin/nologin -c "Virtual Mailbox" vmail
ユーザを追加したら、追加したユーザとそのユーザのgid(今回は"mail")を/home/vmailのオーナーに指定します。
# chown vmail:mail /home/vmail
[/bash]
PostfixadminにWebからアクセスできるようにapacheに設定を行います。
[bash]
apacheの設定ファイルがあるディレクトリに移動します。
yumでインストールした場合、下記になっていると思います。
# cd /etc/httpd/conf.d
viで新規に"postfixadmin.conf"を設定します。
下記の設定の場合、"http://〜/adminmail/"というURLでpostfixadminにアクセスできます。
"/adminmail/"を別の名前にしたい場合は下記"alias 〜"の後ろを変更します。
# vi postfixadmin.conf
alias /adminmail /usr/share/postfixadmin
<Directory "/usr/share/postfixadmin">
AllowOverride AuthConfig
</Directory>
[/bash]
MySQLにPostfix関係のユーザとデータベースを登録します。
[bash]
MySQLにPostfix関係のユーザとデータベースを追加・設定
# mysql -u root -p -e "CREATE DATABASE postfix;"
Enter password:
# mysql -u root -p -e "CREATE USER postfix@localhost IDENTIFIED BY ‘パスワード’;"
Enter password:
# mysql -u root -p -e "GRANT ALL PRIVILEGES ON postfix. * TO postfix@localhost;"
Enter password:
[/bash]
postfixadminの設定を行います。
下記は直接”config.inc.php”を変更していますが、同じディレクトリに”config.local.php”というファイルを用意し、そちらに変更箇所を書いていくことを推奨します。”config.local.php”ファイルが”config.inc.php”ファイルの記述内容よりも優先されます。
つまり、postfixadmin本体をアップデートする場合、”config.local.php”ファイルを保存しておいて、このファイルだけを上書きすれば、こちらの設定が優先され、分かりやすいです。
[bash]
# vi /usr/share/postfixadmin/config.inc.php
以下、変更する箇所、確認しておく箇所を記述します。
$CONF[‘configured’] = true;
$CONF[‘postfix_admin_url’] = ‘/adminmail’;
$CONF[‘default_language’] = ‘ja’;
// データベースの設定
// mysqli は MySQL 5.5以上の場合に設定します。
// 5.5未満の場合は mysql の方が安心です。
$CONF[‘database_type’] = ‘mysqli’;
$CONF[‘database_host’] = ‘localhost’;
$CONF[‘database_user’] = ‘postfix’;
$CONF[‘database_password’] = ‘パスワード’;
$CONF[‘database_name’] = ‘postfix’;
// 管理用メールアドレスを記述します
$CONF[‘admin_email’] = ‘admin@domain.fqdn’;
// こちらも自分の環境に合わせて修正しておきましょう。
$CONF[‘default_aliases’] = array (
‘abuse’ => ‘abuse@domain.fqdn’,
‘hostmaster’ => ‘hostmaster@domain.fqdn’,
‘postmaster’ => ‘postmaster@domain.fqdn’,
‘webmaster’ => ‘webmaster@domain.fqdn’
);
// メールボックスの設定です
// ユーザ毎のメールボックスをドメイン名のディレクトリ配下に作成するかどうか
// YES: ドメイン名でディレクトリを作成します
// 例:/usr/local/virtual/domain.tld/username@domain.tld
// NO: ドメイン名でディレクトリを作成しません
// 例:/usr/local/virtual/username@domain.tld
$CONF[‘domain_path’] = ‘YES’;
// ユーザ毎のメールボックスにドメイン名を付加するかどうか
// YES: 付加します
// 例:/usr/local/virtual/domain.tld/username@domain.tld
// NO: 付加しません
// 例:/usr/local/virtual/domain.tld/username
// もし、 $CONF[‘domain_path’] を "NO"にしたのであれば、"YES"にしておくのが望ましいでしょう
$CONF[‘domain_in_mailbox’] = ‘NO’;
// ドメイン毎のデフォルト設定値になります。
// Quota は MB 単位になります。
// aliases:メールのエイリアス設定数です。
// mailboxes:メールボックス数です。
// maxquota:ドメイン全体の最大quotaの値(容量)です。
$CONF[‘aliases’] = ’10’;
$CONF[‘mailboxes’] = ‘1024’;
$CONF[‘maxquota’] = ‘10240’;
// quotaを使うかどうかです
$CONF[‘quota’] = ‘YES’;
// Vacation機能(不在通知機能)を使うかどうか
$CONF[‘vacation’] = ‘YES’;
// footerの設定関係
// footerのリンクを変更します。
$CONF[‘user_footer_link’] = "http://change-this-to-your.domain.tld/main";
// footerのテキストを表示するかどうか
$CONF[‘show_footer_text’] = ‘YES’;
// 表示する場合、表示する内容を下記へ記述し、リンク先をfooter_linkへ記述する
$CONF[‘footer_text’] = ‘Return to change-this-to-your.domain.tld’;
$CONF[‘footer_link’] = ‘http://change-this-to-your.domain.tld’;
// 本来であれば"YES"の方がいいが、ドメイン設定する前にメールアドレスを登録したい場合などがある場合は"NO"にしておく。
// 私は"NO"にしています。
$CONF[’emailcheck_resolve_domain’]=’NO’;
[/bash]
postfixadminには注目している機能が一つあります。
postfixadmin上でメールボックスやドメインに対して行った処理の後に、指定したスクリプトを実行出来ます。
[bash]
// メールボックス作成後に実行
$CONF[‘mailbox_postcreation_script’]=’sudo -u courier /usr/local/bin/postfixadmin-mailbox-postcreation.sh’;
// メールボックス設定変更後に実行
$CONF[‘mailbox_postedit_script’]=’sudo -u courier /usr/local/bin/postfixadmin-mailbox-postedit.sh’;
// メールボックス削除後に実行
$CONF[‘mailbox_postdeletion_script’]=’sudo -u courier /usr/local/bin/postfixadmin-mailbox-postdeletion.sh’;
// ドメイン作成後に実行
$CONF[‘domain_postcreation_script’]=’sudo -u courier /usr/local/bin/postfixadmin-domain-postcreation.sh’;
// ドメイン作成後に実行
$CONF[‘domain_postdeletion_script’]=’sudo -u courier /usr/local/bin/postfixadmin-domain-postdeletion.sh’;
[/bash]
つまり、メールボックス作成時に新規作成したメールボックス内に特殊なフォルダを作成したり、一緒にスパムチェックなどのシステムの設定が行えたりします。
他にも用途はいろいろあるかと・・・
今回はここまでです。
ここまで来たらメールの送受信が出来るところまではもう少しです。

Share this post