[postfix]
postfixadminをインストールすれば初心者でもGUIインターフェースにてメールアドレスの追加などができるようになります。postfixadminをインストールするにはPHPやMySQLが必要となるので、インストールされていなければまずこちらを先にインストールします。
# yum install expect libtool-libs
postfixをmysql対応のものにupdateします。yumの設定を変えれば、yumでアップデート可能。
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
# yum update postfix postfix-pflogsumm
mysql対応になっているか確認
mysql
postfixadminを取得
# wget http://high5.net/postfixadmin/download.php?file=postfixadmin-2.1.0.tgz
# mv ./download.php\?file\=postfixadmin-2.1.0.tgz postfixadmin-2.1.0.tgz
# tar xvzf ./postfixadmin-2.1.0.tgz
# mv postfixadmin-2.1.0 postfixadmin
# chown apache:apache -R ./postfixadmin
# cd ./postfixadmin
ファイルのパーミッションを設定
# cd admin/
# chmod 640 *.php .ht*
# cd ../images/
# chmod 640 *.png
# cd ../languages/
# chmod 640 *.lang
# cd ../templates/
# chmod 640 *.tpl
# cd ../users/
# chmod 640 *.php
postfixadminで使用されるテーブルを作成。デフォルトのユーザとパスワードはpostfix,postfixになります。
日本語の言語ファイルを取得
# wget http://www.ksknet.net/sample/ja.lang
設定ファイルを編集
# vi ./config.inc.php
php.iniのmagic_quotes_gpcをOnにします。
magic_quotes_gpc = On
http://www.example.jp/postfixadmin/setup.phpにアクセスして環境確認。問題がなければsetup.phpを削除
# rm /var/www/html/postfixadmin/motd*
基本認証が有効となるようにapacheを設定
<Directory /var/www/html/postfixadmin/admin>
AllowOverride AuthConfig
</Directory>
postfixadminの.htaccess内にあるパスを環境に合わせます。デフォルトのユーザとパスワードはadmin,adminに設定されています。
AuthUserFile /var/www/html/postfixadmin/admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Postfix Admin"
AuthType Basic
<limit GET POST>
require valid-user
</limit>
バーチャルドメインユーザを作成
# useradd -g vuser -u 10000 -M vuser
# mkdir -m 771 /home/vuser
# chown -R vuser:vuser /home/vuser
postfix認証ファイルの設定
# touch mysql-virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox.maps.cf
# vi ./mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
# vi ./mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain
# vi ./mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
courier-imapをインストール (関連記事: Courier-IMAP)
# wget http://www.ksknet.net/sample/courier-authlib-0.58-1.i386.rpm
# wget http://www.ksknet.net/sample/courier-imap-4.0.6-1.i386.rpm
# wget http://www.ksknet.net/sample/courier-authlib-mysql-0.58-1.i386.rpm
# rpm -ivh ./courier*
postfixの設定
local_transport = virtual
virtual_transport = virtual
virtual_mailbox_base = /home/vuser
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
virtual_minimum_uid = 10000
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
courier authlibの設定
MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD '10000'
MYSQL_GID_FIELD '10000'
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD '/home/vuser'
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
/etc/authlib/authdaemonrcを編集
authmodulelist="authmysql"
authdaemonを使用するよう、/usr/lib/sasl2/smtpd.confを編集
pwcheck_method: authdaemond
authdaemond_path: /var/spool/authdaemon/socket
mech_list: cram-md5 digest-md5 plain login
log_level: 3
authdaemonのソケットをpostfixユーザが読めるように、daemonグループにpostfixを追加
最後にapache, postfix, courier-authlib, courier-imapなどを再起動すればよい。
※ よくあるエラー
#config.inc.phpがなかったりパーミッションがおかしかったりした場合
# ホストのドメイン名とバーチャルドメインで指定したドメインが重複している。/etc/postfix/main.cfにドメインが直接記述されている場合には、これを削除すればよい。
smtpd_client_connection_rate_limit - 同一クライアントからの接続制限
smtpd_recipient_limit - 同時配信数の制限
fatal: unsupported dictionary type: sdbm
postfixadmin + mysql + courier-imapによるバーチャルドメイン
postfixadminでメールボックスが作成されない
fatal: execvp script_path: Permission denied
postfix - rblの参照
postfix + spamassassin
postfixでのsmtp auth
postfix + amavis + clamav のインストール(RPM編)
postfix - postalias
postfix - メールのサイズ制限
postfix - 基本設定
postfix - pop before smtp
postfix - MaildirとMailbox形式の切り替え
postfix - dracd.dbのエラー
postfix + amavis + clamのインストール
postfix - キューの削除
postfix - transport
postfix - 逆引きが引けないアドレスからのメールを拒否