postfixadmin+postgreSQL+Courier-IMAPという構成で、メールサービスを構築しようと思います。
fedora9では既に構築済みですが、fedora11ではどうにも勝手が違うようで、てこずったので
下記のメモに残しておきます。
1) postgresql-serverのインストールと設定
rootにスイッチしてyumコマンド実行。
# yum install posgresql-server
ユーザ名「postgres」のパスワード設定。
# passwd postgres
新しいパスワード:psql1234
「postgres」にスイッチ。
# su – postgres
データベースクラスタの作成をする。
作成する場所と、デフォルトのデータベースの文字コードを「utf8」に指定。 「-D」 「–encoding」 のオプションを付ける
データベースで日本語を扱いたいので、「–no-locale」 のオプションを付ける。
$ initdb –no-locale –encoding=UTF8 -D /var/lib/pgsql/data
で、続きはまた後日。
2)postfix(postgresql用)のインストール
ネットでいろいろ調べていると、yum コマンドでインストールするpostfixは、
postgresql対応じゃないようです。ですので今村は、postgresql対応用のpostfixを
インストールするんですが、RPMからビルドする必要があるとのこと。
端折ってpostgresql対応用postfixを手に入れたとします。
# rpm -ivh postfix-2.5.1-2.fc9.i386.rpm
エラーが出た。
———————————————————————————————–
エラー: 依存性の欠如:
libcrypto.so.7 は postfix-2:2.5.1-2.fc9.i386 に必要とされています
libdb-4.6.so は postfix-2:2.5.1-2.fc9.i386 に必要とされています
libmysqlclient.so.15 は postfix-2:2.5.1-2.fc9.i386 に必要とされています
libmysqlclient.so.15(libmysqlclient_15) は postfix-2:2.5.1-2.fc9.i386 に必要とされています
libssl.so.7 は postfix-2:2.5.1-2.fc9.i386 に必要とされています
———————————————————————————————————
よくわからん・・・fedora11にインストール中なんだけど、今村が持っているrpmはfedora9用だし、もしかしてそれが原因かも・・・
なので、fedora11用にSRPMのダウンロード、postgresql対応用にリビルドすることにした。
http://ftp.riken.jp/Linux/fedora/releases/11/Fedora/source/SRPMS/ に行って、
postfix-2.5.6-3.fc11.src.rpmをダウンロード。インストール。
# rpm -ivh postfix-2.5.6-3.fc11.src.rpm
すると、ディレクトリ内に rpmbuild というディレクトリができる。
SPECSディレクトリに移動。
# cd rpmbuild/SPECS/
vi でpostfix.specを編集。
# vi postfix.spec
%{?!PGSQL: %define PGSQL 1} ここだけ変更してみる
で、リビルドしたいんだけど、rpm-buildを事前にインストールしておく。
# yum install rpm-build
依存性の欠如だらけ。
db4-devel
zlib-devel
openldap-devel
cyrus-sasl-devel
pcre-devel
mysql-devel
postgresql-devel
openssl-devel
こんなにもない。全部 yum でインストール。
そのあと、rpmbuildを実行。
# rpmbuild -ba postfix.spec
で、RPMS/i386 ディレクトリの中に、
postfix-2.56-3.fc11.i386.rpm
ができているので、早速インストール。
# rpm -ivh postfix-2.5.6-3.fc11.i386.rpm
で、とりあえずインストールOKなので、
main.cfの設定を変更する。ここでは、smtp auth の設定のみ記述。
———————————————————————————————————
### virtual mailuser ###
local_transport = virtual
virtual_transport = virtual
virtual_mailbox_base = /var/mail/vmailbox
virtual_alias_maps = pgsql:/etc/postfix/pgsql_virtual/pgsql_virtual_alias_maps.cf
virtual_alias_domains = $virtual_alias_maps
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql_virtual/pgsql_virtual_domains_maps.cf
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql_virtual/pgsql_virtual_mailbox_maps.cf
virtual_minimum_uid = 500
virtual_uid_maps = static:500
virtual_gid_maps = static:500
### mail size quota ###
message_size_limit = 10240000
virtual_mailbox_limit = 0
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = pgsql:/etc/postfix/pgsql_virtual/pgsql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user’s maildir has overdrawn his diskspace quota,
virtual_overquota_bounce = yes
virtual_mailbox_limit_inbox = yes
disable_vrfy_command = yes
### smtp auth ###
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated
,permit_mynetworks
,reject_unauth_destination
———————————————————————————————————
で、ここでpostfixとpostgresqlの接続に必要な設定情報を格納するディレクトリ「pgsql_virtual」を作成する。
そして、
pgsql_virtual_alias_maps.cf
——————————————————————-
user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address=’%s’
——————————————————————-
pgsql_virtual_domains_maps.cf
——————————————————————-
user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain=’%s’
——————————————————————-
pgsql_virtual_mailbox_limit_maps.cf
——————————————————————-
user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix
query = SELECT quota FROM mailbox WHERE username=’%s’
——————————————————————-
pgsql_virtual_mailbox_maps.cf
——————————————————————-
user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username=’%s’
——————————————————————-
をpgsql_virtualディレクトリに格納する。
で、バーチャルメールボックス用ディレクトリを作成する。
# mkdir /var/mail/vmailbox/
グループを変更。
# chown 500:500 /var/mail/vmailbox/
で、とりあえずOK.
3) Courier-IMAPのインストール
眠くなってきたので、続きはまた今度。
このページを共有する