Mutt E-Mailクイックスタートガイド
1.
E-Mailの紹介
もしあなたが綺麗なグラフィカルユーザーインターフェースを使ったe-mailクライアントが好きではなかったり、どれが合っているか決める前に他のe-mailクライアントを試してみようとしているところだったりするのならば、これらの強力なコマンドラインツールたちを始めるのに簡単な方法を紹介しましょう。
fetchmail->procmail->mutt->smtp
これらのプログラムは強力で、カスタマイズ性が優れているだけでなく、小さく、効率的です。
一度このe-mailシステムを立ち上げて走らせてみれば、あなたは可能な事の多さに驚くでしょう。
これはクイックスタートガイドなので、sendmail、postfixやeximなどのメールトランスファーエージェント(MTA)については省略します。
つまり、複雑なMTAの設定はしていないということです。
また、メールサービスに25番ポートを用いる方法も省略します。
なぜ省略しても構わないかというと、fetchmailが取ってくるメールをポート25番に転送することなく直接メールデリバリーエージェント(MDA)に渡すことができるからです。
つまり、私たちは単純なよくある外へのメールの配送に複雑なMTAを使う必要はないというわけです。
以下がe-mailシステムを走らせるために必要なプログラムです。
Code Listing 1.1: 必要なプログラムをインストールする |
# emerge fetchmail procmail mutt nbsmtp
|
さて、今からファイルを設定するためのたった4つの簡単なステップをふむだけで、全く新しいe-mailシステムを走らせることができます。
Important:
各ステップが終わった後、セットアップが正しいかを確かめるためにテストするとよいでしょう。
そうすれば、全ステップが終わった時点で、完璧に動作するe-mailシステムが手に入ります。
|
2.
fetchmail
fetchmailはリモートサーバー群からメールを取ってきて、ローカルマシンの配送システムに渡します。
そのために、自分のホームディレクトリに以下の例のような.fetchmailrcファイルを設定しておきましょう。
Code Listing 2.1: .fetchmailrcの見本 |
poll mail.myisp.net protocol pop3 user "myname" password "mypasswd"
|
いったん.fetchmailrcファイルを作成したら、chmodコマンドでそのファイルのパーミッションを変更しておく必要があります。
ファイルはファイル所有者のみが閲覧可能であるようにしておかなければなりません。
以下のコマンドでパーミッションを設定します。
Code Listing 2.2: パーミションの変更 |
$ chmod 600 .fetchmailrc
|
fetchmailの動作状況を見たいのならば、verboseモード(-v)を使います。
すべてのメッセージを取ってくるには-aを使います。
また、fetchmailにメールをprocmailに送るように指示するには-mオプションを使わなければいけません。
Warning:
テストの間は、うまくいかなくてもう一度メールを取ってくる必要になった時のことを考えて、リモートサーバーにメールを置いておくためのオプションである-kをfetchmailに渡しておくといいでしょう。
|
さて、fetchmailが動いているのを見てみましょう!
Code Listing 2.3: fetchmailのテスト#1 |
$ fetchmail -akv -m "/usr/bin/procmail -d %T"
|
正常に動作するメールシステムが出来たら、それをcronのジョブに追加したり、gkrellmなどのモニターにおいておくことができます。
fetchmailはポーリング間隔を秒単位で指定するデーモンモードで走らせることもできます。
3.
procmail
procmailはfetchmailによって転送されてきたメールをフィルターする役割を持ちます。
また、Mutt(あなたのメールクライアント)が読むことのできるメールボックスにメールを届けるMDAとしても働きます。
procmailを使うには、ホームディレクトリに.procmailrcファイルを作る必要があります。
クイックスタートガイドという目的から、今はgentooの3つのメーリングリストをメールを、gentoo-dev、gentoo-user、gentoo-announceというメールボックスへとフィルタリングする簡単な.procmailrcを用います。
Note:
procmailのフィルタールールはレシピと呼ばれており、ここではいくつかのスパムをフィルターするレシピも含んでいます。
|
Code Listing 3.1: .procmailrcの見本 |
MAILDIR=$HOME/MuttMail ##このディレクトリが存在するのを確認しましょう
LOGFILE=$HOME/.procmaillog
LOGABSTRACT=no
#VERBOSE=on...これはデバッグのために使われます
VERBOSE=off
FORMAIL=/usr/bin/formail
NL="
"
##レシピの行は:0から始まります
##レシピの行にはコメントを入れてはいけません
##あるレシピを無効にするには!を入れます
##条件行は*から始まり、正規表現を用います
##各条件はAND条件で評価され、*の後にあるものはすべて直接egrepに渡されます
##条件式のすぐ後に一つのアクションを記した行が続きます。この場合はメールボックスの名前です
#formailを使ってフィルタリングする
:0 Whc: .msgid.lock
| $FORMAIL -D 16384 .msgid.cache
:0 a
$MAILDIR/duplicates
#これらの人からのメールは常に受け入れる
:0
* ^From:.*(craig\@hotmail|renee\@local.com)
$MAILDIR/friends
#スパムの除去
:0
* ^Subject:.*(credit|cash|money|debt|sex|sale|loan)
$MAILDIR/spam
#HTMLメールは受け入れない
:0
* ^Content-Type:.*html
$MAILDIR/junk
#MLのメールをメールボックスに入れる
:0
* ^List-Id:.*gentoo-user
gentoo-user
:0
* ^List-Id:.*gentoo-dev
gentoo-dev
:0
* ^List-Id:.*gentoo-announce
gentoo-announce
#その他のgentooからのメールを取ってくる
:0
* ^From:.*gentoo.org
gentoo
:0
* ^From:.*@freshmeat\.net
freshmeat
##################################
# 最後のルール: 受信したメールは #
# デフォルトのボックスへ入れる #
##################################
:0
* .*
default
# End of file
|
Note:
procmailがaction lineにある名前をつかって必要とされるすべてのメールボックスを作ってくれるので、MAILDIR $HOME/MuttMailを作るだけで構いません。
有用なリンクとしてはhttp://www.procmail.org/を訪れてみてください。
|
ここで、1つ目のステップでテストしたように、再びfetcmailコマンドを動かしてみることで.procmailrcのテストができます。
-kオプションはやり直した時に取ってこれるよう、すべてのメールをリモートサーバーに残しておくというオプションであることを覚えておいてください。
Code Listing 3.2: procmailのテスト#1 |
$ fetchmail -akv -m "/usr/bin/procmail -d %T"
|
さて、fetchmailとprocmailが動いたところで、$HOME/MuttMailへ移動して、lessやファイルマネージャーでメッセージを見てみましょう。
4.
Mutt e-mailクライアント
Muttはe-mailを読んだり、書いたりするために使われます。
強力でカスタマイズ性に優れているだけでなく、小さく、効率的です。
Muttは4種類のメールボックスの形式(mbox、MMDF、MHとMaildir)で読み書きするのをサポートしています。
メールボックスのタイプは自動的に検出されます。
今回はメールボックスのすべてのメッセージが1つのファイルに保管されるmbox形式を使うことにします。
MuttはリモートIMAPサーバーにあるフォルダーで作業する機能も持っています。
MuttマニュアルやMuttのウェブサイトhttp://www.mutt.org/のセクション4.11のIMAPサポートを見てください。
1つ目のステップでMuttをemergeしたとき、その設定ファイルは/etc/mutt/Muttrcにインストールされます。
ホームディレクトリに.muttrcファイルを作る必要があります。
Code Listing 4.1: .muttrcの見本 |
# cp /etc/mutt/Muttrc ~/.muttrc
# nano -w .muttrc
set pager_context=1
set pager_index_lines=6 #ページャーにミニインデックスを表示する
set menu_scroll
set pgp_verify_sig=no #ページャーにpgpを表示しない
set status_on_top #ステータス行を一番上に持ってくる
set sort=threads #インデックスのメッセージスレッドでソートする
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="%4C %Z %[%b%d] %-15.15F %s"
set folder_format="%2C %t %8s %d %N %f"
#set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f yourname@isp.net"
#set from="default-mailaddress" #Fromアドレスの指定
#set realname="myname"
set record="$HOME/MuttMail/sent" #送信メールはここに保存されます
set delete=yes #確認無しに消去する
set include=yes #返信時にメッセージを引用する
set fast_reply=yes #返信時の受取人とsubjectの入力プロンプトを省略
set beep=no #うるさくしない
set markers=no #折り返される行に+を表示しない
set confirmappend=no #=keepにメールを保存する時に確認しない
set to_chars=" +TCF" #購読しているMLの表示はしない
set folder = $HOME/MuttMail
mailboxes =gentoo-user
mailboxes =gentoo-dev
mailboxes =gentoo-announce
mailboxes =gentoo
mailboxes =freshmeat
mailboxes =duplicates
mailboxes =default
mailboxes =friends
mailboxes =junk
mailboxes =spam
mailboxes =keep
save-hook .* =keep #メールを保存しておくデフォルトのメールボックスは=keepです
subscribe gentoo-user gentoo-dev #購読済みML
bind pager h display-toggle-weed #hキーでヘッダを切り替える
# 古いURLメニューをシミュレートする
macro index \cb |urlview\n 'call urlview to extract URLs out of a message'
macro pager \cb |urlview\n 'call urlview to extract URLs out of a message'
#Gキーを押すことでfetchmailを起動する
macro index G "!fetchmail -a -m 'procmail -d %T'\r"
macro pager G "!fetchmail -a -m 'procmail -d %T'\r"
#.muttrcを編集して、その後変更を適用するのに用いる。再起動の必要はありません
macro generic ,sm ":source $HOME/.muttrc\r"
macro generic \cj "!rxvt -bg wheat -e joe $HOME/.muttrc\r"
# メールを表示する時にデフォルトで取り除くヘッダ領域のリスト
#すべてを取り除くようにしておいてから、見たいものだけを表示させる
ignore *
unignore Date To From: Subject X-Mailer Organization User-Agent
hdr_order Date From To Subject X-Mailer User-Agent Organization
##あなたのMuttには色がついてますよね?
##下の設定は4段階の引用文についての設定です
##これらは/etc/mutt/Muttrcにあるシステム設定を上書きします
#color quoted green default
color quoted1 magenta blue
#color quoted2 yellow default
#color quoted3 red default
#color signature cyan cyan
#下の色の設定は/etc/mutt/Muttrc.colorからコピーしたものです
#もし/etc/mutt/Muttrcにデフォルトの色を使いたければコメントアウトしてください
# Je vois la vie en rose (人生がバラ色に見える):-)
color hdrdefault brightcyan blue
color header brightwhite blue "^from:"
color header brightwhite blue "^subject:"
color quoted brightgreen blue
color signature brightwhite blue
color indicator blue green
color error red black
mono error bold
color status black cyan
mono status bold
color tree yellow blue
color tilde brightmagenta blue
color body brightwhite blue "[-a-z_0-9.]+@[-a-z_0-9.]+"
mono body bold "[-a-z_0-9.]+@[-a-z_0-9.]+"
color body brightyellow black "^Good signature"
mono body bold "^Good signature"
color body brightwhite red "^Bad signature from.*"
mono body bold "^Bad signature from.*"
color normal white blue
color message green black
color attachment brightgreen blue
# End of file...でもまだまだ続くはず....:)
|
はっきり言っておきますが、これは単に.muttrcの見本の1つに過ぎません。
例えばgpgの統合のような、設定可能なオプションがまだたくさんあります。
より多くの例やヘルプは、http://www.dotfiles.com/index.php?app_id=27を見てみて下さい。
(訳注:日本語でのMuttに関する情報は、http://www.emaillab.org/mutt/などを参照するとよいかもしれません)
さて、.muttrcをテストしてみましょう。
Code Listing 4.2: .muttrcのテスト |
$ mutt -y
|
こうすると、テスト2でfetchmailコマンドを実行したときに作ったMuttのメールボックスを表示して、メニュー付きのMuttを開くはずです。
Muttのメールボックスを操作するためのヘルプは?をタイプしてください。
5.
SMTP
最後のステップは、メールをSMTPサーバに送るために使う'No-Brainer SMTP(非常に簡単なSMTP)'であるnbsmtpのセットアップです。
この設定はいままでで一番簡単で、あなたの.muttrcファイルに1つのエントリーを加えるだけです。
domain: あなたがnbsmtpに属しているように言って欲しいドメインです。これはほぼ間違いなくあなたのe-mailアドレスのドメインと同じです。
from@addr: あなたがnbsmtpに対し、メッセージがどこからきたのか言ってほしいと望むアドレスです。これはあなたのMUAの"From:"とは違っていることに注意してください。
host: これはあなたがメールを送るSMTPサーバーです。
Code Listing 5.1: SMTPサポートの追加 |
$ nano -w .muttrc
set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f urname@isp.net"
|
さて、メッセージを送る準備が整いました。
Muttのページャーかインデックスの画面で、mキーを押してあなたのメールアドレスに対して送るテストメールを作成しましょう。
あなたが.muttrcにeditor=を設定していない限り、Muttはメール作成エディターにEDITORやVISUALの値を用います。
メールの作成が終わったならば、yを押してメールを送信します。
エラーが無ければ、'sending mail'に続いて'Mail sent'が表示されることでしょう。
.muttrcにおいて、送信済みのメールを保管しておく場所にset record="$HOME/MuttMail/sent"を指定したことを思い出しましょう。
ようやくテストが完了したので、再びfetchmailコマンドを実行してすべてのメールを受信し、あなたが自分のe-mailアドレスに送ったメールが届いていることを確認しましょう。
テストメッセージを見つけたならば、hキーを押してすべてのヘッダの表示に切り替え、完全なメール送信パスを確認しましょう。
Note:
たぶんあなたが追加したいと思われる、urlviewと呼ばれるもう1つのプログラムがあります。
これはメッセージテキストの中からURLを取り出し、ブラウザへ送ってくれます。
|
Code Listing 5.2: urlviewのインストール |
# emerge urlview
|
次に/usr/share/doc/urlview*/から設定ファイルをコピーすることで~/.urlviewを作り、ブラウザコマンドを設定します。
あなたはすでに強力でカスタマイズ性に優れたメールシステムを手にしています。
その柔軟性を利用するために、マニュアルを読み、procmailrcやmuttrcをウェブで検索してみることで多くのユーザー設定ファイルを見つけてください。
6.
認証が必要なSMTP
nbSMTPを使う
もしSMTPサーバにユーザー名とパスワードを送信する必要があるなら、以下のようにして.muttrcにあるset sendmailコマンドに-U <username> -P <password>を含めるように編集することができます。
Code Listing 6.1: SMTPへのユーザー名とパスワードの設定 |
set sendmail="/usr/bin/nbsmtp -U username -P password -d isp.net -h smtp.isp.net -f urname@isp.net"
|
もしこの情報を.muttrcファイルに含めたくない場合は、全ての情報を含めた.nbsmtprcファイルを作成することもできます。
Code Listing 6.2: ~/.nbsmtprcの例 |
auth_user = username
auth_pass = password
|
もう一つの選択: msmtpを使う
msmtpはnbsmtpと同じような機能を持つ簡単なもう一つの選択です。
Code Listing 6.3: msmtpのインストール |
# emerge msmtp
|
すぐに、通常のユーザアカウントでログインし、
SMTPサーバの情報を記入した~/.msmtprcファイルを作成することでmsmtpを設定します。
忘れずにパーミッションを安全な値に設定しておいてください!
Code Listing 6.4: msmtpの設定 |
$ nano -w .msmtprc
account default
host smtp.your_provider.net
from your_username@provider1.net
auth login
user your_username
password your_password
|
ではファイルに安全な値のパーミッションを設定しましょう。
Code Listing 6.5: 設定ファイルにパーミッションを設定 |
$ chmod 600 .msmtprc
|
最後に、以下の行を.muttrcに編集もしくは追加します。
Code Listing 6.6: Muttとmsmtpを使用 |
$ nano -w .muttrc
set sendmail="/usr/bin/msmtp"
|
muttを起動して、動作しているか確かめるために自分自身にテストメールを送信しましょう。
他のオプションやその他の例はmsmtpのマニュアルページを参照してください。
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|