|
postfix postfixadmin mysql dovecot courier-imap
|
|
|
バーチャルメールドメインに対応した 簡単な管理ツールです。
↓↓↓こんなことができるようになります、スパム撃退 「スパム防止のため、送り先のメールアドレスはメールにつき50件(ログイン毎、計100件)、送信作業は15秒に1回に限られています。」
インストールの「みそ」は、ユーザおよびグループのIDを理解しておくことと、何処にバーチャルメールディレクトリーを作るか最初に決める事、認証形式をよく理解すること(mysqlはmd5crypt)。 |
|
|
|
|
インストール
|
|
Mailサーバー
|
postfix postfixadmin mysql dovecot courier-imap
|
| |
|
|
|
|
|
最初に apacheの DirectoryIndexに index.phpを加えておく
次にphpにpearを追加しておく
# cd /usr/ports/mail/postfixadmin; make install clean
# cd /usr/local/www/postfixadmin
1. Create the MySQL Tables -------------------------- In /usr/local/www/postfixadmin/DATABASE.TXT you can find the table
structure that you need in order to configure Postfix Admin and Postfix in general to work with Virtual Domains and Users
2. Configure ------------ Check the /usr/local/www/postfixadmin/config.inc.php file. There you can specify settings that are relevant to your setup.
The default password for the admin part of Postfix Admin is admin/admin. This is specified in the .htpasswd file in the admin directory. Make sure that the location of the .htpasswd file matches your path.
3. Configure Apache ------------------- Add a line in your httpd.conf to allow the use of .htaccess file.
Options Indexes AllowOverride AuthConfig
# mysql -uroot -p < DATABASE_MYSQL.TXT
データベースはpostfixという名前で、ユーザ名postfix、パスワードpostfixで
アクセスできるように設定されている。
変更したい場合にはDATABASE_MYSQL.TXTに適宜変更を加える。
# ee /usr/local/www/postfixadmin/config.inc.php 以下を編集
$CONF['default_language'] = 'ja'; //日本語化する場合は編集 $CONF['database_password'] = 'postfixadmin'; //Postfix Adminで使用するデータベースのパスワード $CONF['admin_email'] = 'postmaster@change-this-toyour.domain.tld'; //管理者のメールアドレス $CONF['default_aliases'] = array ( ); //デフォルトのメールエイリアス $CONF['encrypt'] = 'md5crypt';
/postfixadmin/setup.phpをブラウザでアクセスしてセットアップの確認を行う。
問題がなければ、setup.phpを削除またはリネームした上で、
admin sectionにアクセスして初期設定を行う。(admin adminでアクセスできる。)
postfixadmin 日本語化
# cd /usr/local/www/postfixadmin/languages # wget http://www.aconus.com/~oyaji/suse9.2/ja.lang # chmod 640 ja.lang # cd ../ # sed -i "s/$CONF['default_language'] = 'en'/$CONF['default_language'] = 'ja'/g" config.inc.php # cd ./templates # sed -i "s/iso-8859-1/Shift_JIS/g" header.tpl
# cd /usr/port/mail/postfix
# make install clean
MySQLがenableになっていなければならない。
無事にインストールできたら、下記をurlを利用して設定ファイルを編集する。
http://www.819410.com/FreeBSD6/shop/-98.html
問題なく postfixが起動したならば
# ee /usr/local/etc/postfix/main.cf を以下に編集
alias_maps = alias_databases =
/usr/local/etc/postfix/main.cfの末尾に以下をざっくり追加する。
local_transport = virtual
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf virtual_mailbox_base = /var/mail virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_limit = 51200000 virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 125 virtual_uid_maps = static:125 virtual_gid_maps = static:6 virtual_transport = virtual # Additional for quota support virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps = mysql:/usr/local/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
この設定では、Maildir形式のメールスプールが/var/mail/username@my.domain/というディレクトリに作られる。 /var/mailのもともとのパーミッションに合わせて、ユーザpostfix(UID=125)、グループmail(GID=6)の権限で書き込むように設定している。/etc/passwd, /etc/groupを見て異なる値になっていたらその値に合わせる必要がある。
次にmain.cfで使っている4つのmysql_virtual_XX.cfファイルを用意する。各々の内容は以下の通り。 # ee /usr/local/etc/postfix/mysql_virtual_alias_maps.cf
user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT goto FROM alias WHERE address='%s' AND active='1'
# ee /usr/local/etc/postfix/mysql_virtual_domains_maps.cf
user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' #optional query to use when relaying for backup MX #query = SELECT domain FROM domain WHERE domain='%s' AND backupmx='0' AND active='1'
# ee /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT maildir FROM mailbox WHERE username='%s' and active='1'
# ee /usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT quota FROM mailbox WHERE username='%s'
4つのファイルを作ったらmysql_virtual_XX.cfを人様に見られないようにchmod & chgrpしておく。
# chmod 640 mysql_* # chgrp postfix mysql_*
SASLの設定などは後からでもできるので省略。 起動の設定
/etc/rc.confに以下の行を追加する。
postfix_enable="YES" sendmail_enable="NONE" ("NO"ではなくて"NONE")
/etc/periodic.confに以下の行を追加する(なければ新規に作る)。
daily_clean_hoststat_enable="NO" daily_status_mail_rejects_enable="NO" daily_status_include_submit_mailq="NO" daily_submit_queuerun="NO"
□courier-imap編 (初級者でも設定可能)
courier-imapをインストール
# cd /usr/ports/mail/courier-imap/
# make install clean
※ mysqlを忘れないようにする
# ee /usr/local/etc/authlib/authdaemonrc
下記を編集 authmysqlにする authmodulelist="authuserdb authvchkpw authpam authldap authmysql authpgsql"
authmodulelist="authmysql"
version="authdaemond.mysql"
# ee /usr/local/etc/authlib/authmysqlrc
修正時には、各値の設定区切りはTABキーになっています。スペースではありませんのでご注意ください。
□dovecot編 (上級者向け)
http://www.819410.com/FreeBSD6/shop/-18.html
上記urlを参考に dovecot をインストール
#cd /usr/ports/mail/dovecot-sieve # make install clean
※ mysqlを有効にしておく
■上記のdovecot-mysql.conf を作成
# MySQL を使用(mysql, pgsql が選択可能) driver = mysql # 認証方法の指定(PLAIN, PLAIN-MD5, DIGEST-MD5, CRYPT) default_pass_scheme = PLAIN-MD5 # Postfix Admin から使用するデータベースの情報 connect = host=localhost dbname=postfix user=postfix password=postfix password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1' # 10000 AS uid ,10000 AS gid の 10000 はメールボックス用ユーザー、グループのIDです。 user_query = SELECT maildir, 10000 AS uid, 10000 AS gid FROM mailbox WHERE username = '%u' AND active = '1'
作成したファイルにはデータベースのパスワードが含まれていますので、ファイルのパーミッションを変更しておきます。
# chmod 600 /etc/dovecot-mysql.conf # chgrp dovecot /etc/dovecot-mysql.conf
# ee /usr/local/etc/dovecot-mysql.conf
driver = mysql default_pass_scheme = PLAIN connect = host=localhost dbname=postfix user=postfix password=postfix password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1' user_query = SELECT maildir, 0 AS uid, 6 AS gid FROM mailbox WHERE username = '%u' AND active = '1'
Dovecot のバーチャルドメイン設定
Dovecot をバーチャルドメインに対応させるには、
'/etc/dovecot.conf' に以下を追加します。基本的な設定は完了しているものとします。
# メールボックスの場所を指定
#mail_location = maildir:~/Maildir mail_location = maildir:/var/mail/virtual/%u
# 認証方法の変更 # パスワードの取得を SQL に変更 #passdb shadow { #} passdb sql { # Path for SQL configuration file, see doc/dovecot-sql.conf for example args = /usr/local/etc/dovecot-mysql.conf } # ユーザー名の取得を SQL に変更 #userdb passwd { #} userdb sql { # Path for SQL configuration file, see doc/dovecot-sql.conf for example args = /usr/local/etc/dovecot-mysql.conf }
以上の設定が完了したら Dovecot を再起動します。
# /etc/rc.d/rc.dovecot restart
バーチャル対応なのでドメイン名まで含めてひとつのアカウントです。
因みに、dovecotでSQLで認証周りで困ったら、/etc/dovecot.conf の最後のほうにある「auth_debug」を yesにすると細かい動きがログに残るのでデバッグしやすい。
|
|
|