CodingFirst

C言語、Perl、JavaScript、最近はPythonも。出来上がったものより、プログラムを書くことが好き。あと、スイーツ。

スポンサーサイト

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

メーラをmuttにしてみる。

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

Thunderbirdを使ってたんだけど、
環境の引越しの際、メールを整理しようと思ってみたら、
Thunderbirdに認識されてないファイルが多量に見つかった。
どうやら、フォルダ名変更、削除などの際に変更前のフォルダが残ってしまうことがあるみたい。
最近、やけに重いし、ゴミメールも残っちゃうし...とイラっとしたので、

これを機に変えてみよう。
mbox系ならなんでもいいんだけど、
ちょっと興味のあった mutt あたりで。

いろいろやりようはあるみたいだけど、
オーソドックスな fetchmail→procmail→mutt という感じで受信する。
めんどくさいので、送信側は後で設定する。

fetchmailでメールを受信する

メールの受信は、fetchmailを使う。

$ apt-get install fetchmail

受信の設定は、.fetchmailrc に。

$ cat ~/.fetchmail
set postmaster USERNAME # エラーメールの送信先
set nobouncemail # エラーメールを送信者に返さない
set logfile ~/tmp/fetchmail.log

defaults
#	smtphost localhost # 
#	no mimedecode      # 文字化け防止

poll SERVERNAME proto pop3
	user NAME there pass 'PASSWORD' is USERNAME here options fetchall
	mda "/usr/bin/procmail -d %T"

とした。大文字の所は自分用設定を書く。

  • USERNAME : PCのユーザ名
  • SERVERNAME : pop3サーバアドレス
  • NAME : pop3のアカウント名
  • PASSWORD : pop3のパスワード文字列

パスワードを生の文字列で保存するので、
ファイルのパーミッションは 600 にしとく。
といっても、自宅のPCなので気にしなくていい気もする。

$ fetchmail 

とすれば、メールが procmail に渡されるようになるけど、procmailの設定をしてから実行しよう。

ほんとはMDAを指定せずに、smtphost で localhost に渡したかったけど、
エラーがでたのでやめといた。どっか設定が足りないんだろう。気にしない。

procmailで mbox形式でメールを振り分ける

fetchmailで受け取ったメールをprocmailで振り分け、mbox形式で保存する。

procmailは、

$ apt-get install procmail

とかでインストールする

procmailの設定をする。メールは ~/Mail に置くことにする。

$ mkdir ~/Mail
$ cat ~/.procmailrc
PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin
SHELL=/bin/bash
MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/
SPAM=$MAILDIR/spam
LOGFILE=$HOME/tmp/procmail.log
LOCKFILE=$HOME/.lockmail
#LOGABSTRACT=no
VERBOSE=on
#VERBOSE=off

# backup
:0 c
backup

# spam
:0
* ^Subject:.*(sex|viagra)
spam

# xxxx
:0
* ^From:.*xxx@yyy.com
xxx

# inbox
:0
inbox

# end of file

環境変数はてきとうに設定する。
declare -xの設定をコピペしとくといいという意見もある。

  • backup: メールの振り分け設定に失敗すると、メールを消失したりするので、まず先に backup にメールのコピーをとっておく。
  • spam: Subjectにsexとかviagraとかあったらspam。ばっさり削除せず、spamフォルダに入れて暇な時に手動削除する。
  • xxxx: xxxx@yyy.comから来たメールはxxxxにコピーする。メール仕分けのテンプレ。
  • inbox: 残ったメールはinboxに入れる。

ここまで書いたら fetchmail を実行してみる。

fetchmailのログにエラーがないのと、メールがinboxなどに届いてれば成功。
backupにしか届かなかったら、振り分けのどこかでミスしてる。

muttでメールを見る。

muttは日本人パッチとかあるけど、
なくても困らないという人もいたので、普通にインストールする。

$ apt-get install mutt
$ cat ~/.muttrc
set mbox_type=mbox
set folder="$HOME/Mail"
set spoolfile=+inbox
set record="+outbox"
set postponed="+posdponed"
set tmpdir="~/tmp"
set move=no

mailboxes =inbox =backup =spam
mailboxes =outbox
mailboxes =posdponed

# --- encoding
set file_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"
set assumed_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"
set charset="utf-8"
set send_charset="us-ascii:iso-2022-jp"
#set sanitize_ja_chars=yes
set thorough_search=yes
set rfc2047_parameters=yes
set forward_decode=yes
set mime_forward_decode=no
set edit_headers=yes

# --- pager
set pager_context=1
set pager_index_lines=10
set menu_scroll
set pgp_verify_sig=no
#set status_on_top
#set status_format=" %r %b %f %n      Del %d      Msgs %m %l %> (%P)"
#set pager_format="%-10.10i %[!%a %b %d %R]"
#set date_format="!%H:%M %a %d %b     "
set index_format="%2C %Z %[%m/%d %H:%m] %-15.15F %s"
set folder_format="%2C%t%N %-20f %d %4s"
set sort=threads
set tilde=yes
set allow_8bit=no

ignore *
unignore From: To Cc Date Reply-To Subject
hdr_order Date From To Cc Reply-To Subject

# --- editor
set editor="vim %s"
#set in_reply_to="%i"
set quote_regexp="^(\[[A-Za-z0-9_.: \-]*\][ ]*)"
set forw_format="FWD:[%s]"

# --- hook
#send-hook . 'set signature="~/.signature"'
#send-hook . 'set attribution="%d において\n%n さん曰く:\n"'
#send-hook \.jp$     'set signature="~/.signature"'
#send-hook \.jp$     'set attribution="%d において\n%n さん曰く:\n"'
#send-hook \.(com|de|se|mx|ro|edu|net)$     'set signature="~/.signature"'
#send-hook \.(com|de|se|mx|ro|edu|net)$     'set attribution="On %d,\n%f wrote:\n"'

#folder-hook . 'unlists *'
#folder-hook . 'set sort=threads'
#folder-hook outbox 'set sort=date-sent'
#folder-hook <!> 'lists aaa bbb'
#folder-hook aaa 'lists aaa bbb'

# --- macro
macro index G "!/usr/bin/fetchmail\n"

# --- aliases
#source ~/.aliases

# --- general
set nomove
set mailcap_path="$HOME/.mailcap:/etc/mailcap"
auto_view text/enriched text/html
set abort_nosubject=no
set metoo
set noabort_unmodified
set mark_old=no

# --- color
color normal white default
color hdrdefault cyan default
color header yellow default "^(Subject|From|Date):"
color body magenta default [_a-z\.A-Z0-9-]+@[a-zA-Z0-9\./\-]+
color body magenta default (http|ftp)://[_a-zA-Z0-9\./~\-]+
color tilde cyan default

いろんなとこのをコピペしてちょっといじったもの。これで、

$ mutt

でメールを見たりできるようになる。

設定に関しては、

  • 新規でメールフォルダを作ったら mbox 形式になるように
  • 既存の mboxのメールを見るには mailboxes に入れること。
  • 端末の背景色を半透明にしてるので、カラーの背景を極力 defaultにしとくといい感じになる。

muttの操作方法はよくわかんないけど、

  • q ... 終了
  • j,k ... 上下
  • <SPACE> : メールを見る
  • ^G : 作業のキャンセル。困ったら押す。
  • y ... mailboxesに設定したフォルダ一覧
  • t ... メールを選択状態(タグ)にする。複数メールを操作する時に使う。
  • ;d$ ... 選択したメールを全部削除
  • ;s? ... 選択したメールをフォルダ一覧表示で選んだフォルダに移動する
  • T ... 正規表現でメールを選択する
  • e ... エディタで開く

こんくらいは覚えた。あんまメールださないからこれで充分。
まーヘルプみて徐々に覚えようとは思う。

メールの自動受信

fetchmailのデーモンって手もあるけど、cronでいいと思う。

$ crontab -e
SHELL=/bin/bash
#USERNAME=xxxx
#MAILTO=$USERNAME
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DISPLAY=":0.0"
*/30 * * * * fetchmail > $HOME/tmp/fetchmail.log 2>&1
#*/30 * * * * fetchmail > $HOME/tmp/fetchmail.log 2>&1 && notify-send -i mutt "メールだワン"

30分置きにメールを受信。一応、ログを書いとく。
notify-send 使うとメール受信時につう通知領域にでるけど、
これだとspamも通知されちゃうのでうざい。procmailに書いた方がいい。

スポンサーサイト


★☆★コメント★☆★

承認待ちコメント

このコメントは管理者の承認待ちです

コメントの投稿

Name
Subject
Mail
URI
Comment
Pass
Secret 管理者にだけ表示を許可する

トラックバック

http://iyukki.blog56.fc2.com/tb.php/100-605e9c88

 | HOME | 

Search

Recent Entries

Foot Print



Categories

Monthly

Recent Comments

Recent Trackbacks

Profile

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。