ターミナルに「You have mail.」と表示されたら

こんな感じで、ターミナルを起動したら You have mail. と出ました。
ちなみに .bash_profile と .bashrc は、これらがちゃんとロードされたか分かるように、自分がechoしてるものなので、普通は出ません。

/var/mail/ を確認する

$ less /var/mail/$LOGNAME

FHSで*1 /var/mail/ は「ユーザーのメールボックス(mail-box)」となっています。
MacUNIXなので、このメールボックスがあって You have mail. と表示されらそこにメールがあるはずです。


そんなところにメールが来るはずは無いと思いつつ見てみたら、ローカルにあるPostfixからの Undelivered Mail Returned to Sender でした。
なぜかといえば PDO (SQLite) For WordpressプラグインでWordpressをSQLiteで動かしてみた - kanonjiの日記 でローカルに設置してみた Wordpress が原因です。
Wordpressが /usr/bin/mail を使って、ユーザー追加の通知メールを送ろうとしたけど、Postfixは外部にメールを送信できなかった形。

Macで動いてるPostfix

Mac OS XはクライアントOSのため通常はメールの送信機能などは不要だが、cronのようなバックグラウンドタスクの中には、/usr/bin/mailを使って処理結果をメールで伝えるものがある。そのためにpostfixが動作するようになっている*2のだ。

第2回 initを置き換えるlaunchd【後編】 (1/3) - ITmedia エンタープライズ

Macの/private

$ ls -l /etc
lrwxr-xr-x@ 1 root  admin  11  4 24  2009 /etc -> private/etc
$ ls -l /tmp
lrwxr-xr-x@ 1 root  admin  11  4 24  2009 /tmp -> private/tmp
$ ls -l /var
lrwxr-xr-x@ 1 root  admin  11  4 24  2009 /var -> private/var

なぜかこの3つが /private にあるディレクトリへの、ハードリンクになってる。
理由はちょっとぐぐってみたけど、見つかりませんでした。

*1:Filesystem Hierarchy Standard

*2:Pantherまではpostfix-watchという専用の監視プログラムが動作しており、このスプールを監視していた。