2003-12-08 に fetchmail + procmail を導入して以来、ログイン時に You have mail と言われるようになった。pro は外部からの smtp を受け付けないし、メールを受け取るような cron も設定していない。いったいどこからメールが来てるんだろう、と不思議に思って調べると、.procmailrc に
ログインしたときに出てる訳だから、ログイン時に実行されるスクリプトあたりだろうか、と推測し、/etc/profile, /etc/bashrc, $HOME/.login, $HOME/.bash_profile, $HOME/.bashrc を調べてみたが、どこにもそれらしきスクリプトは無かった。唯一 /etc/profile に
もうこうなったら Google に聞くしかない。Google で ログイン "you have mail" を検索すると、JM のページがトップでヒット。
Manpage of LOGIN
http://www.linux.or.jp/JM/html/shadow/man1/login.1.html
なるほど、login コマンドそのものが出力していたのか。でも、「メールボックスの状態によって」というのが気になる。どんな状態だとどのメッセージが出るのかはわからなかった。login のソースを読むのが近道かなあ。
:0 cとルールを記述していたため、ローカルのメールボックスにメールを残しつつ転送するようになっていたことが原因だとわかった。どこかのウェブページにあった .procmailrc を、内容を吟味せずにほとんどそのまま使ってしまったので当然の結果だ。
- You have mail って誰が言ってるの?
ところで、You have mail って誰が出してるメッセージなんだろう、と思って調べてみた。ログインしたときに出てる訳だから、ログイン時に実行されるスクリプトあたりだろうか、と推測し、/etc/profile, /etc/bashrc, $HOME/.login, $HOME/.bash_profile, $HOME/.bashrc を調べてみたが、どこにもそれらしきスクリプトは無かった。唯一 /etc/profile に
USER=`id -un`というメールスプールのパスを設定している記述があるだけだ。
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
もうこうなったら Google に聞くしかない。Google で ログイン "you have mail" を検索すると、JM のページがトップでヒット。
Manpage of LOGIN
http://www.linux.or.jp/JM/html/shadow/man1/login.1.html
ログインに成功すると、システムメッセージやメールの有無が表示される。ログインディレクトリに長さ 0 のファイル .hushlogin を作っておけば、システムメッセージファイルである /etc/motd の表示を無効にできる。メールに関するメッセージは、メールボックスの状態によって "You have new mail.", "You have mail.", "No Mail." のいずれかになる。
なるほど、login コマンドそのものが出力していたのか。でも、「メールボックスの状態によって」というのが気になる。どんな状態だとどのメッセージが出るのかはわからなかった。login のソースを読むのが近道かなあ。
以上の内容はhttp://sonic64.com//2003-12-11.htmlより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます
モバイルやる夫Viewer Ver0.14