mail の設定
fetchmail で gmail でメールをダウンロードし、 bsfilter でスパムの判定を行ない、maildrop で振り分ける。 送信は msmtp で行う環境を作る。 OS は Ubuntu 10.04。
インストール
apt-get install fetchmail msmtp maildrop
fetchmail
~/.fetchmailrc (pop を使う場合)
オプションによっては gmail からダウンロードする場合に pop を使うと 問題がある(後述)。
set no bouncemail
defaults
protocol pop3
keep
no mimedecode
mda "/usr/bin/maildrop"
poll pop.gmail.com
port 995
user [your_user_name]@gmail.com
password **********
ssl
~/.forward
.forward の設定は以下のようになっていたが、必要なのかどうか忘れた。
"| exec |/usr/bin/maildrop || exit 75"
maildrop
~/.mailfilter
$HOME/.maildrop/ にログを保存しておくので、 mkdir ~/.maildrop
でディレクトリを作成しておく。
HOME=/home/your_user_name
MAILDIR="$HOME/Documents/Maildir/"
MAILDROP="$HOME/.maildrop/"
logfile "${MAILDROP}maildrop.log"
xfilter "/usr/bin/bsfilter --pipe --insert-flag --insert-probability --auto-update"
`reformail -D 10000 ${MAILDIR}reformail.txt`
if ($RETURNCODE == 1)
{
if (/^X-Spam-Flag: Yes/)
{
to "${MAILDIR}.spam"
}
else
{
to "${MAILDIR}"
}
}
Maildir 用のディレクトリを作成する
$HOME/Documents/Maildir/ にメールを保存するために Maildir 形式のディレクトリを作る。 maildirmake コマンドを使うのが手っ取り早い。
maildirmake ~/Documents/Maildir
cur、 new、 tmp の3つのディレクトリができる。 これらのディレクトリがないと、メールをダウンロードするときに うまく処理できない。
msmtp
~/.msmtprc
ディレクトリ /home/your_user_name/.msmtp/ もなければ作成しておく。
account [your_user_name]@gmail.com
host smtp.gmail.com
tls on
tls_certcheck off
auth on
user [your_user_name]
password **********
port 587
auto_from on
logfile /home/your_user_name/.msmtp/[your_user_name]@gmail.com.log
gmail で使用するときの注意
fetchmail を使って pop でダウンロードしていたら、 あるときからメールがダウンロードできなくなった。 「999番目のメッセージを読み飛ばしました。メッセージを削除しませんでした。」 というメッセージが出てダウンロードできなくなった。
keep と uidl のオプションがいけなかったらしい。 keep オプションを外し、~/.fetchids を削除してダウンロードし直すと治った。
gmail で pop は推奨されていないようなので、imap を使うことにした。 ダウンロードするときに、削除するような設定にしても、 複数回ダウンロードされないだけで、gmail には残っている。 imap を使うために ~/.fetchmailrc を変更する。
defaults
protocol imap
uidl
nokeep
no mimedecode
mda "/usr/bin/maildrop"
poll imap.gmail.com
port 993
user *****@gmail.com
password *****
ssl