Courier-IMAP pop client
POPサーバーからIMAPのINBOXへメールを取得する
Courier IMAPへログインするたびに、POPサーバーからIMAPのINBOXへメールを取得するには、shell script ~/Maildir/loginexec を作成し、この中でfetchmailを呼び出せばよい。
MTAは立てないが、IMAPは立てるという場合に使える手。MewはincするたびにIMAPへログインするので、iを押すたびにfetchmailを実行してincするという動作になる。
Courier IMAPは認証が通るたびに ~/Maildir/loginexec を実行する。 このときloginexecが戻り値0を返すと、Courier IMAPはloginexecを削除してしまう。しかし0以外を返せば、削除されず、認証のたびにloginexecが実行されることになる。
loginexec:
#!/bin/sh
export HOME=put_your_HOMEDIR_here
PIDFILE=~/.fetchmail.pid
FETCHMAIL=/usr/local/bin/fetchmail
BSFILTER=~/bin/bsfilter
NEWDIR=~/Maildir/new
SPAMDIR=~/Maildir/.spam/cur
LOGFILE=~/log/loginexec.log
(
echo ----- begin
date
if [ -f $PIDFILE ]; then
echo $PIDFILE was found. another fetchmail may be running ...
else
$FETCHMAIL
NEWMAILS=`ls ~/Maildir/new | wc -l | sed -e 's/ //g'`
if [ X$NEWMAILS != X0 ]; then
echo execute bsfilter.
$BSFILTER -a --list-spam --max-mail 1000 --min-mail 800 $NEWDIR/* | xargs -iMAILS mv MAILS $SPAMDIR/
fi
fi
echo ----- end
) >> $LOGFILE 2>&1
exit 1