

| postfixインストール |
solidpopが今のところうまく動いてません。
現在がんばってspop3dをインストールしましたがむりだったので
courier-imapに切り替えました。
動かないインストール履歴はこちら。
その後、親切な方から間違いの指摘をいただいて
まともなものになりました。
pop before smtpをする場合は参照ください。
| install_root: [/]リターン Please specify a directory for scratch files while installing Postfix. You must have write permission in this directory. tempdir: [/usr/local/arch/postfix/postfix-2.2.8]リターン Please specify the final destination directory for installed Postfix configuration files. config_directory: [/etc/postfix]リターン Please specify the final destination directory for installed Postfix daemon programs. This directory should not be in the command search path of any users. daemon_directory: [/usr/libexec/postfix]リターン Please specify the final destination directory for installed Postfix administrative commands. This directory should be in the command search path of adminstrative users. command_directory: [/usr/sbin]リターン Please specify the final destination directory for Postfix queues. queue_directory: [/var/spool/postfix]リターン Please specify the final destination pathname for the installed Postfix sendmail command. This is the Sendmail-compatible mail posting interface. sendmail_path: [/usr/lib/sendmail]リターン Please specify the final destination pathname for the installed Postfix newaliases command. This is the Sendmail-compatible command to build alias databases for the Postfix local delivery agent. newaliases_path: [/usr/bin/newaliases]リターン Please specify the final destination pathname for the installed Postfix mailq command. This is the Sendmail-compatible mail queue listing command. mailq_path: [/usr/bin/mailq]リターン Please specify the owner of the Postfix queue. Specify an account with numerical user ID and group ID values that are not used by any other accounts on the system. mail_owner: [postfix]リターン Please specify the group for mail submission and for queue management commands. Specify a group name with a numerical group ID that is not shared with other accounts, not even with the Postfix mail_owner account. You can no longer specify "no" here. setgid_group: [postdrop]リターン Please specify the destination directory for the Postfix on-line manual pages. You can no longer specify "no" here. manpage_directory: [/usr/local/man]リターン Please specify the destination directory for the Postfix sample configuration files. sample_directory: [/etc/postfix]リターン Please specify the destination directory for the Postfix README files. Specify "no" if you do not want to install these files. readme_directory: [no]リターン |
| queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mail_owner = postfix default_privs = nobody myhostname = aroman.mine.nu myhostname = home3.jinjin.com mydomain = jinjin.com mydomain = aroman.mine.nu myorigin = $myhostname inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, $mydomain, mynetworks_style = subnet mynetworks = 192.168.128.0/24, 127.0.0.0/8, [::1]/128, [IPv6 NLA2ブロック::]/48 #ipv6使わないときはIPv6のところだけ外す #relayhost = 192.168.128.0 alias_maps = dbm:/etc/aliases alias_database = dbm:/etc/aliases home_mailbox = Maildir/ debug_peer_level = 2 sendmail_path = /usr/lib/sendmail newaliases_path = /usr/bin/newaliases mailq_path = /usr/bin/mailq setgid_group = postdrop manpage_directory = /usr/local/man sample_directory = /etc/postfix readme_directory = no allow_mail_to_commands = alias,forward,include smtpd_recipient_limit = 3000 |
myhostnameをここで2つ定義しているのは、このメールサーバのDNS名が内側からはhome3.jinjin.comとしているのに、外側からはaroman.mine.nuで定義されているから。通常は一行でいいでしょう。もし、メールサーバがいくつか名前を持っているならこういう定義の仕方はありでしょう。(注:バーチャルホストのことを意味しているのではない) 同じ理由でmydomainも定義しています。 イントラネットでHUBホストがきまってるならrelayhost=vvv.xxx.yyy.zzzでIP指定するか、ホスト名が解決できるならホスト名を入れておきましょう。 includeやforwardを使えるようにしてよりsendmailと互換性を高めましょう。 またFMLとか使いたいなら必須でしょう。 sendmailと互換性を高めたいならMaildirではなくて「home_mailbox = Mailbox」を使って/var/mail/におけばよいかと。 |
| Mar 6 10:43:31 home3 postfix/master[4623]: [ID 197553 mail.info] daemon started -- version2.2.8 Mar 6 10:46:39 home3 postfix/pickup[4626]: [ID 197553 mail.info] 3345218061: uid=0 from=<root> Mar 6 10:46:39 home3 postfix/cleanup[4679]: [ID 197553 mail.info] 3345218061: message-id=<20040306014639.3345218061@aroman.mine.nu> Mar 6 10:46:39 home3 postfix/qmgr[4627]: [ID 197553 mail.info] 3345218061: from=<root@aroman.mine.nu>, size=111647, nrcpt=1 (queue active) Mar 6 10:46:41 home3 postfix/smtp[4681]: [ID 197553 mail.info] 3345218061: to=<yuzo@jinjin.org>, relay=vs.mailsystems.net[211.125.95.178], delay=2, status=sent (250 Mail accepted) |
| postfixその他設定等 |
●ヘッダーの削除
イントラネット内での中継してるホスト名を消したい場合
| 例). ユーザ送信→「社内MTA1」→「社内MTA2」→インターネット→xxx→受信者MTA と送信される場合で、今「社内MTA2」のpostfixの設定をしているとします。 そして時々 554 Too many hops 18 (17 max): from xxxx のようなエラーメールが帰ってくることがある。 |
そのときに「社内MTA1」と「社内MTA2」の情報をReceived:ヘッダーから削除
して受信者に社内ホストの経由状況を見せないように設定することができます。
また受信者に届くまでにホップ数が17個以上ではじかれるというような
古いシステムを通過してしまう場合のためになるべくReceivedヘッダーを少なくしたい
という時があると思います。
そういう設定をする場合は
# vi /etc/postfix/main.cf
header_checks =
regexp:/etc/postfix/header_checks
をコメントをはずす。
# vi /etc/postfix/header_checks
/^Recieved:/ IGNORE
の一行を追加
# /usr/sbin/postfix reload
でReceivedヘッダーが全て削除される。
※「社内MTA1」にあるアカウントに配送されてくる場合
すべてのReceivedヘッダーがなくなってしまっているので
逆にどこを通ってきたのか全くわかりません。
ただし数万アカウントあったりする場合
ヘッダーの容量が小さくなるのでDISKへのI/Oが小さくなり
DISKスペースの無駄も少なくなり、MTAのパフォーマンスも向上する
というメリットもあります。
特にIMAPサーバの場合などかなり有効な方法かと思います。
同じ要領でX-MailerやX-Priorityを消すことができます。意味あるかどうか別にして・・・
●送信メールの制限サイズ変更
postfixのデフォルトは5MBを超えると送信できないようになっている。
なのでそれを変更するために
# vi /etc/postfix/main.cf
message_size_limit =
327680000
を/etc/postfix/main.cfに追加して
#じゃっかん常識はずれなサイズではあるが・・・
# postfix reload
したところ下記のエラーがでていた・・・
Apr 5 14:01:16 home3 postfix/local[9594]: [ID 947731 mail.crit] fatal:main.cf configuration error: mailbox_size_limit is smaller thanmessage_size_limit Apr 5 14:01:17 home3 postfix/master[303]: [ID 947731 mail.warning]warning: process /usr/libexec/postfix/local pid9594 exit status 1 Apr 5 14:01:17 home3 postfix/master[303]: [ID 947731 mail.warning]warning: /usr/libexec/postfix/local: bad command startup -- throttling |
mailboxのサイズがデフォルトでは少し小さいのかもしれない
#postconf |grep mailbox_size
mailbox_size_limit =
51200000
で50MBになっていた。まあ妥当なサイズかもしれないが
これ以上でかいファイルを送信するには
mailbox_size_limitもでかくしなくてはいけない。
なので
# vi /etc/postfix/main.cf
mailbox_size_limit
= 512000000
message_size_limit =
327680000
の2行を追記
と10倍してmessagesサイズより小さくし
#postfix reload
するとエラーもなくうまくいった。
この用にデフォルトの値がわからない時や知りたいときは
postconfコマンドを使おう!
●セキュリティ
送信してくる相手のMTAがDNSで引けない場合はスパムの可能性が高いので
全てsmtpセッション中にrejectしてしまう。
disable_dns_lookups = yes
vefyコマンドを使ってサーバにあるアカウントの調査をされないために
disable_vrfy_command = yes
その他スパム防止はこちらを参照ください。
| postfixバーチャルドメインの設定 |
上記の通り一通り設定ができれば通常のメールサーバとしては問題ない。
しかし、グローバルに公開しているホスティングサーバ
などは同じIPアドレスでいくつものドメイン名を持っている場合がある。
そんな時は上記の設定では受信できない。
バーチャルドメインを使う必要がある。
バーチャルドメインをするには2通りのやり方がある
1.UNIXアカウントを使う方法
2.UNIXアカウントを使わない方法
◎UNIXアカウントを使う方法
[前提条件]
・aroman.mine.nu
・sunsolve.homeunix.com
というドメイン名を取っている。
サーバ上にUNIXアカウントとして
nitta
test
という2つのユーザが
aroman.mine.nu
sunsolve.homeunix.com
を使えるようにする。
[手順]
# vi /etc/postfix/main.cf
| virtual_alias_maps =dbm:/etc/postfix/virtual virtual_alias_domains = $virtual_alias_maps |
※dbmかhashかはpostconf -m(maptypeを見るオプション)で確認する。
を追記。
# vi /etc/postfix/virtual
| nitta@sunsolve.homeunix.com nitta test@sunsolve.homeunix.com test |
# postmap /etc/postfix/virtual
※postmapでデータベースに反映させる
○プロセスの再起動
# postfix reload
○送受信テスト
# mailx nitta@sunsolve.homeunix.com < /etc/passwd
# mailx nitta@aroman.mine.nu < /etc/group
受信確認してみましょう
実際に両方のドメイン宛できてることでしょう。
これではただ違うドメインで
受け取れるようになっただけで
いまいち本格的ではありませんね。
だってnittaというUNIXアカウントをサーバ上に作ってしまうと
少なくともメインとして動いているaroman.mine.nuには無条件で
nitta@aroman.mine.nuというメールアドレスに配送できてしまいます。
◎UNIXアカウントを使わない方法
[前提条件]
・aroman.mine.nu
・sunsolve.homeunix.com
・juniper.homelinux.com
というドメイン名を取っている。
[実現すべきこと]
cisco@juniper.homelinux.com
starcat@sunsolve.homeunix.com
に配送する。
※当然ciscoやstarcatというユーザアカウント存在しない
cisco@aroman.mine.nuやcisco@sunsolve.homeunix.com
はuser unknownになるように!
[手順]
先ほどUNIXアカウント使うときの設定virtual_alias_maps
で行ったヴァーチャルドメインの設定方法と違うものになります。
virtual_alias_mapとvirtual_alias_domainsは設定されていない状態です。
○設定ファイルの追記
# vi /etc/postfix/main.cf
| ##追記内容 ####virtual domain### #virtual_mailbox_domains = sunsolve.homeunix.com juniper.homelinux.com virtual_transport = virtual virtual_mailbox_domains = dbm:/etc/postfix/vhosts virtual_mailbox_maps = dbm:/etc/postfix/vmailbox virtual_mailbox_base = /export/home/vhosts virtual_minimum_uid = 1000 virtual_uid_maps = static:10000 virtual_gid_maps = static:20000 vilocal_transport = local local_recipient_maps = unix:passwd.byname $alias_maps virtual_mailbox_limit = 512000000 |
virtual_mailbox_limitは特に必要ないが
message_size_limit = 327680000など設定している場合は
virtual_mailbox_limitをmessage_size_limitより大きくしておかなくてはならない。
○ドメインの定義
# vi /etc/postfix/vhosts
juniper.homelinux.com required to prevent relay access denied errors
sunsolve.homeunix.com required to prevent relay access denied errors
# postmap /etc/postfix/vhosts
○メールボックスの定義
# vi /etc/postfix/vmailbox
cisco@juniper.homelinux.com juniper.homelinux.com/cisco/Maildir/
starcat@sunsolve.homeunix.com sunsolve.homeunix.com/starcat/Maildir/
# postmap /etc/postfix/vmailbox
このファイルの書き方が結構ミソです。
最期に「/」があるのと無いのではえらい違いなのです!
「/」ある場合:maildir形式で保存される
「/」が無い場合:mbox形式で1ファイルとして保存される
今回はmaildirを最初から設定しているのでmaildir形式で保存する!
ユーザを削除するには上記のファイルから該当ユーザの行を削除して
postmapしなおしておこう。
○保存先の作成
# mkdir -p /export/home/vhosts/juniper.homelinux.com
# mkdir /export/home/vhosts/sunsolve.homeunix.com
# chown -R postfix:postdrop /export/home/vhosts
○プロセスの再起動
# postfix reload
このままでは配送はできますがimapやpopで
受信ができません。受信する方法はcourier-imapの項で説明します。
そちらを参照ください。
| courier-imapインストール(2004.03) |
上記の手順でメールは中継できるけど、MUAでPOPやIMAPでゲットすることはできません。
以下でクライアントがサーバにアクセスして自分のメールをとってもらえるようにします。
現在で考えられるプロトコルとしてはpop3とimap4の両方に対応しないといけません。
よてcourier-imapを使います。
これであれば両方のプロトコルをサポートしています。
しかもMaildir形式をサポートしているので超大規模サイトでqmailに乗り換える
必要性がある場合も対応できます。
MaildirをサポートしているものとしてはSqWebMail, maildropなどもあります。
【準備】
http://www.courier-mta.org/download.php#imap
から最新版を入手します。
BerkeleyDB.4.0
OpenSSL
は事前にインストールしておいてね。
【インストール】
・展開
一般ユーザでコンパイルをする必要がある。↓
適当にsuして行ってください。
[11:19am root@home3 imap]$ cd /usr/local/arch/imap/
[11:20am root@home3 imap]$ bzip2 -d < courier-imap-2.2.1.tar.bz2 |tar xf -
[11:20am root@home3 imap]$ ls
courier-imap-2.2.1/ courier-imap-2.2.1.tar.bz2
[11:20am root@home3 imap]$ cd courier-imap-2.2.1
----ちょっと強引ですが・・・----
[12:42pm nitta@home3 courier-imap-2.2.1]$ln -s /usr/local/BerkeleyDB.4.0/lib/libdb.a /usr/local/lib/
[12:42pm nitta@home3 courier-imap-2.2.1]$ln -s /usr/local/BerkeleyDB.4.0/include/db.h /usr/local/include/
[12:42pm nitta@home3 courier-imap-2.2.1]$ ln -s /usr/local/ssl/include/openssl ./openssl
----とりあえずやっときます。----
本当は--libdir --includedirで全部指定すればうまくいくはずでしょうが
今回指定したのにBerkleyDBとopensslを指定してるのにうまくいきませんでしたので。
・コンパイル
[11:22am root@home3 courier-imap-2.2.1]$ ./configure --enable-workarounds-for-imap-client-bugs \
--with-db=db \
--enable-unicode=iso-2022-jp
\
--libdir=/usr/local/lib
\
--includedir=/usr/local/include
\
2>&1|tee
configure.log;
[11:31am nitta@home3 courier-imap-2.2.1]$ make 2>&1|tee make.log
以下はrootで
[12:46pm root@home3 courier-imap-2.2.1]# make install 2>&1|tee make_install.log
[12:55pm root@home3 courier-imap-2.2.1]# make install-configure 2>&1|tee make_install-configure.log
※インストールが終了した後はlibdb.aにシンボリックリンクを作ったものは
削除しておかないとpostfixで
| Mar 6 14:56:29 home3 postfix/smtpd[2567]: [ID 947731 mail.crit] fatal:
unsupported dictionary type: hash Mar 6 14:56:30 home3 postfix/master[4623]: [ID 947731 mail.warning] warning: process /usr/libexec/postfix/smtpd pid 2567 exit status 1 Mar 6 14:56:30 home3 postfix/master[4623]: [ID 947731 mail.warning] warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling |
のようなものが出て正常に送信できないという現象がありました。
なのでsyslinkは消しました。
消しても特にimapやpopが動かなくなることはありませんでした。
ldd /usr/lib/courier-imap/bin/*
ldd /usr/lib/courier-imap/sbin/*
してもlibdb.aにリンクされていませんでした。
・設定
[01:24pm root@home3 etc]# mv pop3d.cnf pop3d.cnf.org
[01:24pm root@home3 etc]# cp -p pop3d.dist pop3d.cnf
[01:24pm root@home3 etc]# mv imapd.cnf imapd.cnf.org
[01:25pm root@home3 etc]# cp -p imapd.dist imapd.cnf
[01:25pm root@home3 etc]# vi authdaemonrc
[変更前]
version=authdaemond.plain
[変更後]
version=authdaemond.plain
・起動
[01:00pm root@home3 rc2.d]# /usr/lib/courier-imap/libexec/imapd.rc start
[01:00pm root@home3 rc2.d]# /usr/lib/courier-imap/libexec/pop3d.rc start
[01:05pm root@home3 rc2.d]# ps -ef |grep imap
| root 1208 1 0 12:59:59 ? 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -stderrlogger=/usr/lib/cou root 1184 1 0 12:58:54 ? 0:00 /usr/lib/courier-imap/libexec/authlib/authdaemond.ldap start root 1196 1184 0 12:58:54 ? 0:00 /usr/lib/courier-imap/libexec/authlib/authdaemond.ldap start root 1210 1 0 12:59:59 ? 0:00 /usr/lib/courier-imap/libexec/courierloggerpop3d root 1185 1184 0 12:58:54 ? 0:00 /usr/lib/courier-imap/libexec/authlib/authdaemond.ldap start root 1191 1 0 12:58:54 ? 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -stderrlogger=/usr/lib/cou root 1194 1184 0 12:58:54 ? 0:00 /usr/lib/courier-imap/libexec/authlib/authdaemond.ldap start root 1195 1184 0 12:58:54 ? 0:00 /usr/lib/courier-imap/libexec/authlib/authdaemond.ldap start root 1186 1184 0 12:58:54 ? 0:00 /usr/lib/courier-imap/libexec/authlib/authdaemond.ldap start root 1193 1 0 12:58:54 ? 0:00 /usr/lib/courier-imap/libexec/courierloggerimapd |
[01:05pm root@home3 rc2.d]# ps -ef |grep pop
root 1210 1 0 12:59:59 ? 0:00 /usr/lib/courier-imap/libexec/courierloggerpop3d
・起動ファイル作成
[01:01pm root@home3 rc2.d]# ln -s /usr/lib/courier-imap/libexec/imapd.rc /etc/rc2.d/S88imapd
[01:02pm root@home3 rc2.d]# ln -s /usr/lib/courier-imap/libexec/pop3d.rc /etc/rc2.d/S88pop3d
以上でインストールは終了です。
あとはwanderlustやmewでimapのテストをしてみましょう。
もしも、UNIXが使えない人はOutlookExpressやその他のMUAで送受信のテストをしてみましょう。
imapもpopも両方とも/var/log/syslogに出力されます。
・確認
[送信]
※自分の愛用のMUA(俗称メーラ)などでテストしてください。
ローカ→ローカル
| Mar 6 15:16:25 home3 postfix/smtpd[2953]: [ID 197553 mail.info] connect from home.jinjin.com[192.168.128.11] Mar 6 15:16:26 home3 postfix/smtpd[2953]: [ID 197553 mail.info] 06DF018061: client=home.jinjin.com[192.168.128.11] Mar 6 15:16:26 home3 postfix/cleanup[2955]: [ID 197553 mail.info] 06DF018061: message-id=<007d01c40342$958ac140$0b80a8c0@home> Mar 6 15:16:26 home3 postfix/qmgr[2605]: [ID 197553 mail.info] 06DF018061: from=<yuzo@jinjin.org>, size=825, nrcpt=1 (queue active) Mar 6 15:16:26 home3 postfix/smtpd[2953]: [ID 197553 mail.info] disconnect from home.jinjin.com[192.168.128.11] Mar 6 15:16:26 home3 postfix/local[2957]: [ID 197553 mail.info] 06DF018061: to=<nitta@aroman.mine.nu>, relay=local, delay=0, status=sent (maildir) |
ローカル-リモート
| Mar 6 15:20:05 home3 postfix/smtpd[2995]: [ID 197553 mail.info] connect
from home.jinjin.com[192.168.128.11] Mar 6 15:20:05 home3 postfix/smtpd[2995]: [ID 197553 mail.info] 20A2E18061: client=home.jinjin.com[192.168.128.11] Mar 6 15:20:05 home3 postfix/cleanup[2997]: [ID 197553 mail.info] 20A2E18061: message-id=<008301c40343$1853e520$0b80a8c0@home> Mar 6 15:20:05 home3 postfix/qmgr[2605]: [ID 197553 mail.info] 20A2E18061: from=<yuzo@jinjin.org>, size=782, nrcpt=1 (queue active) Mar 6 15:20:05 home3 postfix/smtpd[2995]: [ID 197553 mail.info] disconnect from home.jinjin.com[192.168.128.11] Mar 6 15:20:06 home3 postfix/smtp[3001]: [ID 197553 mail.info] 20A2E18061: to=<yuzo@jinjin.org>, relay=vs.mailsystems.net[211.125.95.178], delay=1, status=sent (250 Mail accepted) |
[受信]
IMAPでの受信
| Mar 6 15:28:31 home3 imapd: [ID 702911 mail.info] LOGIN, user=nitta, ip=[::ffff:192.168.128.11], protocol=IMAP Mar 6 15:28:31 home3 imapd: [ID 702911 mail.info] Connection, ip=[::ffff:192.168.128.11] Mar 6 15:28:31 home3 imapd: [ID 702911 mail.info] LOGIN, user=nitta, ip=[::ffff:192.168.128.11], protocol=IMAP Mar 6 15:28:31 home3 imapd: [ID 702911 mail.error] DISCONNECTED, user=nitta, ip=[::ffff:192.168.128.11], headers=0, body=375 |
受信できていました。
POPでの受信
| Mar 6 15:30:29 home3 pop3d: [ID 702911 mail.info] Connection, ip=[::ffff:192.168.128.11] Mar 6 15:30:29 home3 pop3d: [ID 702911 mail.info] LOGIN, user=nitta, ip=[::ffff:192.168.128.11] Mar 6 15:30:29 home3 pop3d: [ID 702911 mail.info] LOGOUT, user=nitta, ip=[::ffff:192.168.128.11], top=0, retr=2878 |
以上で確認もできて問題ないと思います。
もしもMailbox形式からMaildir形式にいこうする必要があるなら
http://untroubled.org/mbox2maildir
のあたりのスクリプトで移行前に前のサーバのデータを
ゲットしてきて変換してしまいましょう。
その手順はサイトによってポリシーを決めてうまくやってください。
クラスター化されたSMTP、POP、IMAPサーバではかなり複雑な手順に
なることとデータの移行が難しいのは言うまでもありません。
新サーバを立てて一気にデータ移行なしにやってしまいましょう。
前のサーバのデータは運用上でカバーしましょう。
postfixとimapでうまくいけば後はリスメール(SquirrelMail)を使ってWEBメールが
使えるようにすればユーザの利便性が上がるのでは?
もしくはuserminですかねえ。
でもメールだけを考慮すればリスメールが一番よいと思います。
| courier-imapでバーチャルドメイン |
[前提条件]
すでにこちらのpostfixのようにバーチャル
ドメインへの配送がされている。
cisco@juniper.homelinux.com
starcat@sunsolve.homeunix.com
への配送が成功し
/export/home/vhosts/juniper.homelinux.com/cisco/Maildir
/export/home/vhosts/sunsolve.homeunix.com/starcat/Maildir
に正常に保存されているものとする。
postfixの設定としてはUNIXアカウントを使用しない
ものが設定されている。
[手順]
○courier-imapでデータを作成する
# cd /usr/lib/courier-imap/sbin
# ./userdb cisco@juniper.homelinux.com set \
home=/export/home/vhosts/juniper.homelinux.com/cisco \
mail=/export/home/vhosts/juniper.homelinux.com/cisco/Maildir \
uid=10000 gid=10000
# echo "test123" |./userdbpw -md5 |./userdb cisco@juniper.homelinux.com
set pop3pw
# echo "test123" |./userdbpw -md5 |./userdb cisco@juniper.homelinux.com
set imappw
○データをデータベースに反映させる
# ./makeuserdb
○確認
# ls -l /etc/userdb*
|
-rw------- 1 root other 527 Nov 3 16:27 /etc/userdb |
受信する
| ユーザアカウント:cisco@juniper.homelinux.com パスワード:test123 |
で自分のMUAでメール受信の確認をしてみよう。
後でどんどんユーザを追加する場合は上記の手順を繰り返す。
例えば以下のようにさらにユーザを追加する。
# cd /usr/lib/courier-imap/sbin
# ./userdb sarcat@sunsolve.homeunix.com set \
home=/export/home/vhosts/sunsolve.homeunix.com/starcat \
mail=/export/home/vhosts/sunsolve.homeunix.com/starcat/Maildir \
uid=10000 gid=10000
# echo "abed123" |./userdbpw -md5 |./userdb starcat@sunsolve.homeunix.com
set imappw
# echo "abed123" |./userdbpw -md5 |./userdb starcat@sunsolve.homeunix.com set pop3pw
# ./makeuserdb
# cat /etc/userdb
| cisco@juniper.homelinux.com imappw=$1$dT62HWsY$NcbA3j3td6rOOcgDkGDzo/|uid=10000|pop3pw= $1$beyr8HPn$mRY6hZ.me.z898Ah4FYg2/|mail=/export/home/vhosts/juniper.homelinux.com/cisco/Mai ldir|home=/export/home/vhosts/juniper.homelinux.com/cisco|gid=10000 support@sunsolve.homeunix.com imappw=$1$SQ7nalkQ$GYaylyx0NbIKVcLcQyw4g.|pop3pw=$1$.NcgM4F 3$.0m39JZHcnYC.Ik9PIHVm1|uid=10000|mail=/export/home/vhosts/sunsolve.homeunix.com/support/M aildir|home=/export/home/vhosts/sunsolve.homeunix.com/support|gid=10000 starcat@sunsolve.homeunix.com imappw=$1$rUmIshTc$ZAiJIODp1OlCpPe9JMh/1.|pop3pw=$1$1H/zzo9 P$9AEMWlV7S6/PGR4SgBqe7/|uid=10000|mail=/export/home/vhosts/sunsolve.homeunix.com/starcat/M aildir|home=/export/home/vhosts/sunsolve.homeunix.com/starcat|gid=10000 |
この用にどんどん追加されることになる。
ユーザを削除するにはこのファイルからユーザを削除してmakeuserdbすればよい!
以上でcourier-imapを使ってpop3とimap4のバーチャルドメインの設定は完了である。
とりあえず仕組み的には以上のようになるが
運用面から考えると結構手間がかかる。
もしもユーザがパスワードを変更したい場合は
userdbを更新するようなプログラムをperlか何かで書かないといけない。
当然WEB上からパスワードの変更をさせるのが普通である。
そのインターフェースを用意するには既製のスグレものはない。