server | user admin (authentication) | ||
---|---|---|---|
mailbox | 振分 | ||
uw-imapd | mbox, MH | ||
courier | Maildir | ||
dovecot | Maildir mbox | ||
cyrus | SASL,PAM,LDAP,Kerberos,自前(設定可能) | 自前 | sieve |
pkgsrc/ | 2009/04 | 2006/11 | 2006/08 | 2005/04 |
---|---|---|---|---|
mail/cyrus-imapd | 2.2.13 | 2.2.12 | 2.2.10 | |
mail/cyrus-imapd21 | 2.1.8 | 2.1.15 | ||
mail/cyrus-imapd22 | -- | 2.2.10 | ||
wip/cyrus | 2.3.14 | -- |
1 | Upgrading From Previous Versions | 旧版からの移行 |
2 | Prerequisites | 必要なもの |
3 | Authenticating Users | 利用者認証方法 |
4 | Compiling the IMAP Server | コンパイル |
5 | Configuring the IMAP Server | サーバの設定 |
6 | Testing the IMAP Server | 動作確認 |
7 | Administering Mailboxes | メール box の管理(2.0) |
8 | Installing SIEVE | 振分用 sieve の設置 |
9 | SNMP Monitoring | SNMP を使って監視 |
10 | Cyrus and Netnews | ネットニュース |
11 | Virtual Domains | 複数ドメインで利用する |
12 | Cyrus Murder: The IMAP Aggregator | IMAP 集合系 |
13 | Operating System Specific Notes | OS 毎の相違点 |
14 | Performance Notes | 性能向上 |
pkgsrc を使って mail/cyrus-imapd で make install あるいは make package とすれば、 必要なものは設置してくれるはずです。 しかし例えば、NetBSD/macppc 2.99.15 とか 3.99.3 で試した ところ、いくつか調整などが必要でした。
3 | 利用者認証方法 | 認証にはどのような方法があるか |
(5) | 着信設定 | MTA (Mail Transfer Agent) -> imapd サーバの設定をします |
7 | メール box の管理 | 個別のメールアカウントの設定 |
cd /usr/pkg/share/examples/cyrus-imapd/ ls -r--r--r-- 1 root wheel 1439 Apr 14 11:27 cmu-backend.conf -r--r--r-- 1 root wheel 1136 Apr 14 11:27 cmu-frontend.conf -r--r--r-- 1 root wheel 692 Apr 14 11:27 imapd.conf -r--r--r-- 1 root wheel 1295 Apr 14 11:27 normal.conf -r--r--r-- 1 root wheel 1296 Apr 14 11:27 prefork.conf -r--r--r-- 1 root wheel 908 Apr 14 11:27 small.conf例えば、次のようにして写します。
/usr/pkg/cyrus/bin/master
IOERROR: opening /var/imap/mailboxes.db: Permission denied * BYE Fatal error: can't write proc file..ここは 本来は次のように mkimap を使うものです (が、上の操作はやはり必要そうです)。
$ /usr/pkg/cyrus/bin/mkimap reading configure file... i will configure directory /var/imap. i saw partition /var/spool/imap. done configuring /var/imap... creating /var/spool/imap... done $
cyrus=YES続いて次のように操作します。
ttyp3:makoto@bwg3 18:22:52/070809(~)> sudo cp -p /usr/pkg/share/examples/rc.d/cyrus /etc/rc.d ttyp2:makoto@st4200 8:59:52/061216(~)> sudo /etc/rc.d/cyrus mkimap reading configure file /usr/pkg/etc/imapd.conf... i will configure directory /var/imap. i saw partition /var/spool/imap. done configuring /var/imap... creating /var/spool/imap... done ttyp2:makoto@st4200 DING!/061216(~)>
ttyp2:makoto@st4200 8:57:58/061216(~)> /etc/rc.d/cyrus Usage: /etc/rc.d/cyrus [fast|force|one](start stop restart rcvar mkimap reload status poll)(通常は make install あるいは pkg_add 時に自動的に作られるはずですが) 次のようになってしまう場合があるかも知れません。
chown: cyrus: invalid user name chown: cyrus: invalid user name su: unknown login cyrus以上を避けるには、 予め username cyrus を作っておきます。もし vipw で編集するなら、次のような行を加えます。
cyrus:xxxxxxxxxxxxx:1001:6::0:0:cyrus-sasl cyrus user:/nonexistent:/bin/sh
/var/log/message: を確認します。
Apr 16 19:04:22 ibook master[370]: process startedあるいは:
Dec 16 08:44:38 st4200 master[10237]: process started Dec 16 08:44:38 st4200 ctl_cyrusdb[24760]: recovering cyrus databases Dec 16 08:44:38 st4200 ctl_cyrusdb[24760]: done recovering cyrus databases Dec 16 08:44:38 st4200 master[10237]: ready for work Dec 16 08:44:38 st4200 ctl_cyrusdb[22478]: checkpointing cyrus databases Dec 16 08:44:40 st4200 ctl_cyrusdb[22478]: done checkpointing cyrus databasestelnet でつないで見ます。
Dec 16 08:46:09 st4200 imap[1443]: locking disabled: couldn't open socket lockfile /var/imap/socket/imap-0.lock: Permission deniedというのを見たこともあります(上記は実際には一行)。
Aug 16 18:26:20 hostname saslpasswd2: setpass succeeded for cyrus Aug 16 18:26:20 hostname saslpasswd2: Couldn't update db
ttyp2:makoto@st4200 8:48:37/061216(~)> cyradm --user cyrus localhost IMAP Password: Login failed: generic failure at /usr/pkg/lib/perl5/vendor_perl/5.8.0/powerpc-netbsd-thread-multi/Cyrus/IMAP/Admin.pm line 119 cyradm: cannot authenticate to server with as cyrus ttyp2:makoto@st4200 8:48:58/061216(~)>ということもあります。この時には、/var/log/messages に次のように書いてありました。
Dec 16 08:51:31 st4200 imap[10539]: locking disabled: couldn't open socket lockfile /var/imap/socket/imap-0.lock: Permission denied Dec 16 08:51:35 st4200 imap[10539]: badlogin: localhost [::1] plaintext cyrus SASL(-1): generic failure: checkpass failedこの場合、次のような部分が関係しているはずです。
ttyp2:makoto@st4200 8:53:17/061216(~)> ls -l /var/imap/socket total 0 srwxrwxrwx 1 root wheel 0 Dec 16 08:44 lmtp=
password が合わないな、という場合、 /var/log/auth.log を見ると、次のように書いてあるかも 知れません。
Apr 18 00:20:25 ibook saslauthd[20881]: do_auth : auth failure: [user=cyrus] [service=imap] [realm=] [mech=getpwent] [reason=Unknown]実際には一行です。
/etc/rc.d/saslauthd には次の部分があるので、何も考えないと sasl は /etc/passwd の認証を使います。
# Default to authenticating against local password database.
if [ -z "${saslauthd_flags}" ]
then
saslauthd_flags="-a getpwent"
fi
上の場合には getpwent とありますので、この部分が有効になっています。
その場合、cyradm を起動して login する時には、
sudo vipw や、passwd -l cyrus
で設定したパスワードを入力する必要があります。しかも、入力の最後は 「改行」でなく、
C-j (^j, control + j) です。
ttyp3:makoto@ibook 0:21:43/050418(~)> sudo cyradm --user cyrus localhost IMAP Password: localhost>ここで help と入力すると、次の項目にある操作一覧が表示されます。
操作 | 短縮形 | 意味 |
---|---|---|
createmailbox | cm | create a mailbox |
deleteaclmailbox | dam | delete an ACL on a mailbox |
deletemailbox | dm | delete a mailbox |
help | get help on commands | |
listaclmailbox | lam | list the ACL on a mailbox |
listmailbox | lm | list mailboxes |
listquota | lq | list quota on root |
listquotaroot | lqr, lqm | list quota roots on mailbox |
quit | exit program | |
renamemailbox | renm | rename a mailbox |
setaclmailbox | sam | set an ACL on a mailbox |
setquota | sq | set quota limits |
localhost> cm user.USERNAME localhost> sam user.USERNAME USERNAME lrswipcda localhost> quit実際には 大文字の部分を自分用の文字列 にして、それ以外の文字はそのまま入力するようにします。 また lrswipcda と書いてある部分は any で良いはずなのですが、(ある時には) この通りの入力をする必要があるようでした(2006/08/03)
これは、例えば、あるはずの mailbox が、ないと言って、では作る ? とすると、 (mailbox not found, create ?) 今度は既にあるので作れない等と言われるのはそのような可能性が大です。 (Mailbox already there)
例えば、次のようになります (2006/12/16 確認)。localhost> cm user.makoto localhost> sam user.makoto makoto any次のようになってしまうこともあります。
localhost> cm user.makoto createmailbox: System I/O error localhost>この場合、/var/log/messages に次のように書いてあるかも知れません。
Dec 16 11:35:15 st4200 imap[26974]: IOERROR: creating directory /var/spool/imap/user: Permission denied/var/spool/imap が次のようになっていないと、上の問題が起きます。今回は手で直してしまいました。
ttyp4:root@st4200 11:44:26/061216(/var/spool)# ls -lag imap/ total 6 drwxr-x--- 3 cyrus mail 512 Dec 16 08:44 ./ drwxr-xr-x 13 root wheel 512 Dec 16 08:44 ../ drwxr-xr-x 2 cyrus mail 512 Dec 16 08:44 stage./これで メールボックスが作られます。 実際にメールを受取れるようにするには、他に二つ設定が必要です。
define(`confLOCAL_MAILER', `cyrus')dnl Mcyrus, P=[IPC], F=lsDFMnqA@/:|SmXz, E=\r\n, S=EnvFromL, R=EnvToL/HdrToL, T=DNS/RFC822/X-Unix, A=FILE /var/imap/socket/lmtp実際の設定方法は sendmail を参考にします。 最近 (2006/06 以降)では sendmail が入っていないので、pkgsrc から入れます。 その場合には、 pkgsrc/sendmail を参照して下さい。
その後、このサーバに対して、メールを出して見ます。
うまく行けば、
/var/spool/imap/user/USERNAME/1.
にメールが到着するはずです。
この後、
squirrelmail
の設定をすれば web の画面でメールの送受が可能になります。
あるいは、振分けをするということであれば
sieveを使うのも一つの方法です。
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 23326 cyrus 53 0 1188K 3432K RUN 24:48 99.02% 99.02% lmtpdsyslog err 区分の表示
cyradm -user cyrus localhost cyradm: cannot connect to server例えば db4 が 4.3.27 の版だと master がうまく動いていなくて こうなることがあります。
(以下意味なく覚え)
Apr 16 21:08:19 ibook imapd: could not getenv(CYRUS_SERVICE); exiting
1295 Apr 14 11:27 ./etc/cyrus.conf 1024 Apr 14 11:27 ./share/doc/html/cyrus-imapd 1082 Apr 14 11:27 ./share/doc/html/cyrus-imapd/cyrusv2.mc 1536 Apr 14 10:57 ./share/doc/cyrus-sasl 1870 Apr 14 11:27 ./share/examples/rc.d/cyrus 512 Apr 14 11:27 ./share/examples/cyrus-imapd 1495 Apr 14 07:00 ./share/sendmail/cf/cyrusproto.mc 1133 Apr 14 07:00 ./share/sendmail/mailer/cyrusv2.m4 2802 Apr 14 07:00 ./share/sendmail/mailer/cyrus.m4 6896 Apr 14 11:27 ./man/man5/cyrus.conf.5 4080 Apr 14 11:27 ./man/man8/cyrus-deliver.8 4518 Apr 14 11:27 ./man/man8/cyrus-imapd.8 3538 Apr 14 11:27 ./man/man8/cyrus-pop3d.8 3205 Apr 14 11:27 ./man/man8/cyrus-quota.8 5051 Apr 14 11:27 ./man/man8/cyrus-master.8 3242 Apr 14 11:27 ./man/man8/cyrus-lmtpd.8 2683 Apr 14 11:27 ./man/man8/cyrus-idled.8 3853 Apr 14 11:27 ./man/man8/cyrus-notifyd.8 4298 Apr 14 11:27 ./man/man8/cyrus-nntpd.8 3488 Apr 14 11:27 ./man/man8/cyrus-fetchnews.8 1024 Apr 14 11:27 ./include/cyrus 7035 Apr 14 11:27 ./include/cyrus/cyrusdb.h 512 Apr 14 11:27 ./cyrus
Aug 10 07:22:16 bwg3 lmtpunix[3255]: skiplist: invalid magic header: /var/imap/mailboxes.db Aug 10 07:22:16 bwg3 lmtpunix[3255]: DBERROR: opening /var/imap/mailboxes.db: cyrusdb error Aug 10 07:22:16 bwg3 lmtpunix[3255]: FATAL: can't read mailboxes file
/usr/pkg/share/doc/html/cyrus-imapd/install-upgrade.htmlに書いてあります。
/usr/pkg/cyrus/bin/cvt_cyrusdb /var/imap/mailboxes.db berkeley /var/imap/mailboxes.db.new skiplistIMAP error: System I/O error と画面に表示されますが、 既読管理にも変換が必要です。
Converting from /var/imap/mailboxes.db (berkeley) to /var/imap/mailboxes.db.new (skiplist)
ttyp1:root@bwg3 7:26:35/070810(~)# mv /var/imap/mailboxes.db.new /var/imap/mailboxes.db
Aug 11 08:36:57 bwg3 imap[14654]: skiplist: invalid magic header: /var/imap/user/m/user_name.seen Aug 11 08:36:57 bwg3 imap[14654]: DBERROR: opening /var/imap/user/m/user_name.seen: cyrusdb error Aug 11 08:36:57 bwg3 imap[14654]: Could not open seen state for user_name (System I/O error)
ttyp4:root@bwg3 8:44:12/070811(~)# \ /usr/pkg/cyrus/bin/cvt_cyrusdb /var/imap/user/m/user_name.seen flat /var/imap/user/m/user_name.seen-new skiplist Converting from /var/imap/user/m/user_name.seen (flat) to /var/imap/user/m/user_name.seen-new (skiplist) ttyp4:root@bwg3 8:44:26/070811(~)#