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