イントロ
最近大学から重要なメールがよく届くようになりました。
というのも、来年度から研究室に配属されるので、その講座配属に関する結構重要な情報がメールで来てました。
で、頻繁にブラウザ開いてgmail行ってログインして見てたんですけど、これ結構時間かかるのですよね、それで、なんとかできないかなぁとか思ってました。
そこで、もうCUIで操作できるmailer環境構築しちゃおうかなと思いやってみました。
ディストロは archlinux でやってます。
メール受信
fetchmail
インストールは、以下で
# pacman -S fetchmail
まず、fetchmailでgmail上にあるメールをPOP3経由で取得するための設定をします。
設定ファイルは ~/.fetchmailrc です
poll pop.gmail.com # gmailのpop3サーバ
protocol pop3 # 使用するプロトコル
port 995 # gmailpop3サーバのポート
uidl # pop3サーバから重複したメールを受取らない仕組み(UIDL)を使用
flush # メールを受取ったらgmail側でメールを削除
no rewrite # ヘッダーを書き換えない設定
no mimedecode # 文字化けしないようにする設定
user "your.address@gmail.com" # 受け取りたいメールサーバのアドレス
pass "Your gmail password" # メールサーバのパスワード
ssl # ssl通信をするという宣言
mda "maildrop" # maildropをmdaに指定
以上でuserで指定したgmail宛に来たメールを取得できます。ですが、まだ、ユーザが見れるような状態ではないので、その辺を maildrop にやらせます。
maildrop
インストールは、
[http://www.courier-mta.org/download.html#maildrop]
からダウンロードして、ビルドします。
$ tar jxvf /path/to/download/maildrop.tar.gzip
$ cd maildrop
$ ./configure
$ ./make
# ./make install
で、インストールできます。
maildropは、フィルターと呼ばれるスクリプトで、
if( 件名にhogeを含むなら ) {
hogeボックスへ
}
if( Fromメールアドレスが*@example.comなら ) {
example.comボックスへ
}
と言うようにメールの振り分けを行います。
設定ファイルは ~/.mailfilter です。
MAILDIR = "$HOME/Maildir"
DEFAULT = "$MAILDIR/"
to "$MAILDIR/" # 何も指定しない場合は $DEFAULTに飛ばされるので 実際は必要ない
ほんとは
if (/^From:.*@example.com/)
{
to "$MAILDIE/example.com"
}
とかやって振り分けるんですが、今は特に振り分けなくていいかなということで全部同じとこにぶち込んでます。
ここまでやったら、maildropで振り分けたメールを保存するディレクトリ、メールディレクトリを作成します(maildropはMaildir方式です)。
$ maildirmake $MAILDIR
コマンドでmaildirのディレクトリを作成するとができます。
ここまでやれば、
$ fetchmail
コマンドでメールを取得できるはず。
でも、maildir形式のデータ構造なので、テキストエディタとかで見ようと思って見れないことはないけどまともに見れません。
そこで、 mutt を今回使いました。
mutt
インストールは、以下で
# pacman -S mutt
muttはCUIで操作できるメールクライアントです。
主に、メールの閲覧に使うつもりです。
設定ファイルは ~/.muttrc です。
set mbox_type = Maildir #
set folder = ~/Maildir #
set spoolfile = ~/Maildir #
set assumed_chareset = "iso-2022-jp:euc-jp:shift_jis:utf-8" # 文字符号化方式を使われていない場合のcharset
set charset = "utf-8" # muttでデータを入出力する際のcharset
こんな感じでfetchmailで取ってきて、maildropで振り分けたメールを閲覧できるようになります。
参考になるページ
[http://www.uetyi.com/server-const/linux-server/entry-72.html:title]
[http://www.mutt.org/doc/manual/:title]