結局乗り換えてしまった.「返信ヘッダが気に食わない」という理由だけでw
さて,インストールやら設定やらについては,基本的にGentoo のドキュメントに従って,また少々古いもののこんな親切な PDF 文書を見ながら行ったんで,果たして俺がわざわざ改めて書く必要があるのか否か激しく疑問だけどまぁ良いや.
メールサーバからメールを受信するために fetchmail を,メールを振り分けるために MDA 兼フィルタである Procmail を,メールの閲覧やら作成やらをするために MUA である Mutt を,メールを送信するために MTA または送信専用プログラムを,それぞれインストールし設定する必要がある.うへぇ.
ここで「MTA または送信用プログラム」に関して覚え書き.
Gentoo ではシステムのパッケージが sSMTP に依存しているらしく,既にインストール済みの状態.「依存している」って事は,そのパッケージが sSMTP を使って何らかの (ログ ?) メールを送信しようとするんだろう.でも勝手に送信されると研究室内で少々迷惑な事になる (なった) らしい.なので,sSMTP はインストールしたままだけども「メールを送信しない」と設定しておく必要がある.
ということで,いちユーザがメールを送信するためには sSMTP 以外のプログラムを使うことになるんだけど,USE フラグ mailwrapper
を有効にしておかないと sSMTP とは共存できないようになっている.なので,以下の記述を /etc/portage/package.use に書き加えておく.ここでは sSMTP 以外の送信用プログラムとして nullmailer を選んだ.
mail-mta/nullmailer mailwrapper
mail-mta/ssmtp mailwrapper
USE フラグを書き換えたので,sSMTP を再インストールするために --newuse オプションをつけて emerge 実行.
$ sudo emerge --newuse -vaD fetchmail procmail mutt ssmtp nullmailer
インストール終了直後,/etc/mail/mailer.conf の編集を要求される (されたはず.多分.etc-update で).これはシステムが使う送信用プログラムの実体を指定するためのファイルなので,sSMTP 以外のプログラムに関する行をコメントアウトしとく.
さぁ,インストールは終わったんで,ここからは各プログラムの設定だ.
……面倒になってきたからレシピファイルを晒すだけでいいよね ? (´・ω・`)
- .fetchmailrc
-
# Global options set daemon 300 # 5 分おきに fetch set syslog # Primary mail server poll mail.xxxxxx # メールサーバの FQDN protocol apop username "user" # 一応 架空のユーザ名ということで password "********" # パスワード (平文 !) # keep mda "procmail -d %s"
- パスワードを平文で直接書いてしまうんで,.fetchmailrc のパーミッションは 600 にすべし.
- 使う MDA を mda キーワードにセットすべし.
- .procmailrc
-
# Variables MAILDIR=$HOME/.maildir/ #DEFAULT=$HOME/var/spool/mail/ LOGFILE=$HOME/var/log/procmail.log # SPAM :0 H * ^X-Spam-Flag: yes * ^Subject: \[SPAM\] inbox/spam/ # From Outlook Express :0 H * ^X-Mailer: .*Microsoft Outlook Express.* inbox/from_OE/ # Default :0 inbox/
- 一応,公開しても問題なさそうなものだけを書いとくw
- 振り分け先ディレクトリ名の末尾に
/
が付いてると,Procmail はそのディレクトリが Maildir 形式であると分かってくれるらしい. - 今のところ,Outlook Express で送られてきたメールは全て怪しげなヤツだけ.いやぁ,皆さん良く分かってるねぇw
- .muttrc
-
# Character encodings set send_charset="us-ascii:iso-2022-jp" set assumed_charset="iso-2022-jp:euc-jp:shift_jis:utf-8" set thorough_search=yes # MTA set sendmail="/usr/bin/nullmailer-inject" set envelope_from=yes # User information set realname="Yoshinori IIHOSHI" set from="user@host.domain" # 一応 架空のアドレスということで set hostname="host.domain" # 一応 架空のホスト名ということで set signature="$HOME/local/doc/signature.txt" # Mailbox type and Folders set mbox_type=Maildir #set spoolfile="$HOME/var/spool/mail/" set folder="$HOME/.maildir/" set mbox="+inbox" # for received mails set record="+outbox" # for sent mails set postponed="+postponed" # for will-send mails set tmpdir="$HOME/tmp/" mailboxes =inbox mailboxes =inbox/spam mailboxes =inbox/from_OE # 一部省略 # Editor set edit_headers=yes set fast_reply=yes set forward_edit=no set include=yes # Pager set pager_index_lines=5 set tilde=yes # Formats set attribution="On %d,\n%f wrote:" # 返信ヘッダの書式 set date_format="!%a, %d %b %Y at %H:%M:%S %Z" # 日時の書式 set index_format="%4C %Z %{%b %d} %-15.15L %s" # メッセージ一覧表示の書式 set folder_format="%2C %t %N %8s %d %f" # ディレクトリ一覧表示の書式 set forward_format="Fwd: %s" # 転送メールのタイトルの書式 # Header ignore * unignore date from to cc subject hdr_order date subject from to cc # Colors color normal white default # Header color hdrdefault cyan default color header brightcyan default "^from:" color header brightcyan default "^subject:" # URI like HTTP color body cyan default "[a-z]+://[-A-Za-z_0-9\\,./\?&=]+" mono body underline "[a-z]+://[-A-Za-z_0-9\\,./\?&=]+" # E-mail address color body cyan default "[-a-z_0-9\\.]+@[-a-z_0-9\\.]+" mono body underline "[-a-z_0-9\\.]+@[-a-z_0-9\\.]+" # IP address color body cyan default "([0-9]{1,3}\\.){3}[0-9]{1,3}" mono body underline "([0-9]{1,3}\\.){3}[0-9]{1,3}" # Quoted body color quoted0 blue default color quoted1 green default color signature blue default color tilde blue default color underline cyan default color error brightred default mono error bold color indicator brightwhite black color attachment green default #color status black cyan #mono status bold #color tree yellow blue #color message green black
- 俺自身 よく分からないままに設定しているものがあるので注意.
- Mutt が使う送信用プログラムのパス (ここでは /usr/bin/nullmailer-inject) を sendmail 変数にセットすべし.
- mbox_type 変数に
Maildir
をセットした場合 = メールボックスの形式に Maildir を選んだ場合,mailboxes 変数で指定した各ディレクトリの直下に cur, new, tmp という名前のディレクトリをそれぞれ作成する必要がある. - .procmailrc と .muttrc とでディレクトリの設定の辻褄が合ってないと当然ダメ.
- 書式の指定がかなり柔軟にできちゃうぜ.すげー.
- 色付けに関してはよく分かってないものが多い.
- /etc/nullmailer/remotes
-
mail.****** smtp # メールサーバの FQDN
んで後は,デーモンとして動かすべきものを自動で起動するように設定すれば良い.
但し fetchmail に関しては注意が必要./etc/init.d/fetchmail を見れば分かる通り,/etc/fetchmailrc なる設定ファイルが存在しないと起動しないようになっている.しかしそんなファイルがない.新規作成するにしてもどういう記述をすべきものなのか知らない.じゃあ良いや,スクリプトの方を書き換えてしまえ,てことで,このページを参考に修正.
--- fetchmail.orig 2007-03-15 17:11:06.000000000 +0900
+++ fetchmail 2007-03-15 17:20:19.000000000 +0900
@@ -12,18 +12,31 @@
fi
}
+# ref.: http://blogs.dion.ne.jp/shadow/archives/1932055.html
start() {
- checkconfig || return 1
-
ebegin "Starting fetchmail"
- start-stop-daemon --start --quiet --exec /usr/bin/fetchmail \
- -- -d ${polling_period} -f /etc/fetchmailrc
+ for user in `ls /home`
+ do
+ if [ -f /home/$user/.fetchmailrc ]
+ then
+ einfo " fetchmail for $user starting..."
+ su $user -c "/usr/bin/fetchmail"
+ fi
+ done
eend ${?}
}
+# ref.: http://blogs.dion.ne.jp/shadow/archives/1932055.html
stop() {
ebegin "Stopping fetchmail"
- start-stop-daemon --stop --quiet --pidfile /var/run/fetchmail.pid
+ for user in `ls /home`
+ do
+ if [ -f /home/$user/.fetchmailrc ]
+ then
+ einfo " fetchmail for $user stopping..."
+ su $user -c "/usr/bin/fetchmail --quit"
+ fi
+ done
eend ${?}
}
- ~/.fetchmailrc の方で
set daemon 300
などと記述していれば,コマンドライン引数を与えなくともデーモンモードで起動するのでこれで OK.
$ sudo eselect rc start fetchmail $ sudo eselect rc add fetchmail default
初期化スクリプトの起動/停止・ランレベルへの追加/削除くらいだったら eselect は逆に面倒臭い気もするなぁ,自分で書いておきながら.
……あーーー.ようやくこれで全部書いたかね.抜けとか誤りがあれば発覚したその都度に修正することにしよう.
これくらいの長さの文書になると,きちんと章立てして hn
要素で見出しもきちんとつけて書くべきなんだろうけど (のぺ~っとしてて読みにくいし),レイアウト的にどうなっちゃうのか検証してないし するのも面倒なんで,今は放置.