Mac OSXでPostfixが勝手に起動する仕組み
メールを送ろうとしたら送れたので驚いた。
- Macではメールサーバの設定をしなくても、外にメールが出ていく。
- プロセスリストを見ても気づかない。
- sendmailを実行するアプリケーション(PHPとか)に要注意。
- 送るつもりがなかったメールが出てしまっていないか?
- ログ /var/log/mail.log を確認。
- スプール /var/mail/ を確認。
- 手元では_wwwのアカウントにWordPressの通知(配送失敗)が届いていた。
仕組み。
- launchdが /var/spool/postfix/maildrop を監視している。
- Postfix版sendmailコマンドが /var/spool/postfix/maildrop にキューファイルを作成する。
- maildropディレクトリの変化に気づいたlaunchdが /usr/libexec/postfix/master master -e 60 を実行。
- 「ポイントはQueueDirectoriesだ。...launchdはこのディレクトリを監視し、ファイルが置かれるなど変化があった場合、ProgramArgumentsで指定されたmasterを起動する。」*
- メール送信後 -e 60 で60秒後に終了する。
- 「masterは引数の「-e 60」によって60秒後に終了し、再びlaunchdから起動されるまで眠りにつく。」*
- Postfix manual - master(8)
-e exit_time
- org.postfix.master.plistをアンロードしてからdate | mail -s test dummy@example.com で、maildropにキューがたまるのを確認できる。
- launchctl unload /System/Library/LaunchDaemons/org.postfix.master.plist
- LaunchDaemons (launchctl, launchd.plist) の使い方 - maruko2 Note.
- 起動しっぱなしにしたい場合は、-e 60を外してOnDemand falseに。
- 404 Blog Not Found:Taming Tiger -- postfix編
- man launchd.plist
- 404 Blog Not Found:Taming Tiger -- postfix編