Gentoo Logo

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システムを走らせるために必要なプログラムです。

コード表示 1.1: 必要なプログラムをインストールする

# emerge fetchmail nbsmtp procmail mutt

さて、今からファイルを設定するためのたった4つの簡単なステップをふむだけで、全く新しいe-mailシステムを走らせることができます。

重要: 各ステップが終わった後、セットアップが正しいかを確かめるためにテストするとよいでしょう。 そうすれば、全ステップが終わった時点で、完璧に動作するe-mailシステムが手に入ります。

2.  fetchmail

fetchmailはリモートサーバー群からメールを取ってきて、ローカルマシンの配送システムに渡します。 そのために、自分のホームディレクトリに以下の例のような.fetchmailrcファイルを設定しておきましょう。

コード表示 2.1: .fetchmailrcの見本

poll mail.myisp.net protocol pop3 user "myname" password "mypasswd" 

いったん.fetchmailrcファイルを作成したら、chmodコマンドでそのファイルのパーミッションを変更しておく必要があります。 ファイルはファイル所有者のみが閲覧可能であるようにしておかなければなりません。 以下のコマンドでパーミッションを設定します。

コード表示 2.2: パーミションの変更

$ chmod 600 .fetchmailrc

fetchmailの動作状況を見たいのならば、verboseモード(-v)を使います。 すべてのメッセージを取ってくるには-aを使います。 また、fetchmailにメールをprocmailに送るように指示するには-mオプションを使わなければいけません。

警告: テストの間は、うまくいかなくてもう一度メールを取ってくる必要になった時のことを考えて、リモートサーバーにメールを置いておくためのオプションである-kをfetchmailに渡しておくといいでしょう。

さて、fetchmailが動いているのを見てみましょう!

コード表示 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-devgentoo-usergentoo-announceというメールボックスへとフィルタリングする簡単な.procmailrcを用います。

注意: procmailのフィルタールールはレシピと呼ばれており、ここではいくつかのスパムをフィルターするレシピも含んでいます。

コード表示 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

注意: procmailがaction lineにある名前をつかって必要とされるすべてのメールボックスを作ってくれるので、MAILDIR $HOME/MuttMailを作るだけで構いません。 有用なリンクとしてはhttp://www.procmail.org/を訪れてみてください。

ここで、1つ目のステップでテストしたように、再びfetcmailコマンドを動かしてみることで.procmailrcのテストができます。 -kオプションはやり直した時に取ってこれるよう、すべてのメールをリモートサーバーに残しておくというオプションであることを覚えておいてください。

コード表示 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ファイルを作る必要があります。

コード表示 4.1: .muttrcの見本

(/usr/share/doc/mutt*にある素晴らしいMuttマニュアルを必ず読むようにしてください。)
(ここにあるすべての設定は/etc/mutt/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をテストしてみましょう。

コード表示 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サーバーです。

コード表示 5.1: SMTPサポートの追加

$ nano -w .muttrc
set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f urname@isp.net"

さて、メッセージを送る準備が整いました。 Muttのページャーかインデックスの画面で、mキーを押してあなたのメールアドレスに対して送るテストメールを作成しましょう。 あなたが.muttrceditor=を設定していない限り、Muttはメール作成エディターにEDITORやVISUALの値を用います。 メールの作成が終わったならば、yを押してメールを送信します。 エラーが無ければ、'sending mail'に続いて'Mail sent'が表示されることでしょう。

.muttrcにおいて、送信済みのメールを保管しておく場所にset record="$HOME/MuttMail/sent"を指定したことを思い出しましょう。

ようやくテストが完了したので、再びfetchmailコマンドを実行してすべてのメールを受信し、あなたが自分のe-mailアドレスに送ったメールが届いていることを確認しましょう。 テストメッセージを見つけたならば、hキーを押してすべてのヘッダの表示に切り替え、完全なメール送信パスを確認しましょう。

注意: たぶんあなたが追加したいと思われる、urlviewと呼ばれるもう1つのプログラムがあります。 これはメッセージテキストの中からURLを取り出し、ブラウザへ送ってくれます。

コード表示 5.2: urlviewのインストール

# emerge urlview 

次に/usr/share/doc/urlview*/から設定ファイルをコピーすることで~/.urlviewを作り、ブラウザコマンドを設定します。

あなたはすでに強力でカスタマイズ性に優れたメールシステムを手にしています。 その柔軟性を利用するために、マニュアルを読み、procmailrcmuttrcをウェブで検索してみることで多くのユーザー設定ファイルを見つけてください。

6.  認証が必要なSMTP

nbSMTPを使う

もしSMTPサーバにユーザー名とパスワードを送信する必要があるなら、以下のようにして.muttrcにあるset sendmailコマンドに-U <username> -P <password>を含めるように編集することができます。

コード表示 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ファイルを作成することもできます。

コード表示 6.2: ~/.nbsmtprcの例

auth_user = username
auth_pass = password

もう一つの選択: msmtpを使う

msmtpnbsmtpと同じような機能を持つ簡単なもう一つの選択です。

コード表示 6.3: msmtpのインストール

# emerge msmtp

すぐに、通常のユーザアカウントでログインし、 SMTPサーバの情報を記入した~/.msmtprcファイルを作成することでmsmtpを設定します。 忘れずにパーミッションを安全な値に設定しておいてください!

コード表示 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
#SMTPサーバがTLS暗号化をサポートしているなら、次の行のコメントを外してください
#tls

ではファイルに安全な値のパーミッションを設定しましょう。

コード表示 6.5: 設定ファイルにパーミッションを設定

$ chmod 600 .msmtprc

最後に、以下の行を.muttrcに編集もしくは追加します。

コード表示 6.6: Muttとmsmtpを使用

$ nano -w .muttrc
set sendmail="/usr/bin/msmtp"

muttを起動して、動作しているか確かめるために自分自身にテストメールを送信しましょう。 他のオプションやその他の例はmsmtpのマニュアルページを参照してください。



印刷

ページの更新日 2006年 8月 28日

この翻訳はすでにメンテナンスされていません。

要約: このガイドではe-mail用の強力なコマンドラインツールである、fetchmail、procmail、mutt、nbsmtp、msmtpについて解説します。

Mike Polniak
Author

Ken Nowack
Editor

John Hitchings
Contributor

津田 宗一郎
翻訳

小林弘樹
翻訳

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.