FreeBSD QandA 303
Q. fetchmail が
reading message 1 (xxxx bytes) .fetchmail: SMTP connect failed
fetchmail: SMTP transaction error while fetching from xxx.xxx.xxx
というエラーを表示して、メールを持ってきてくれません。
A. fetchmail は、POP や IMAP で取得してきたメールを、標準では SMTP を使っ
て配送しようとします。sendmail.cf を正しく設定した上で、sendmail(8) を
daemon モードで動作させてやれば一応問題は解決するのですが、ローカルメー
ル配送のためだけに sendmail を動かしておく意味は無いばかりか、セキュリ
ティの面でもあまりお薦めできません。
その代り、~/.fetchmailrc に mda 指定を追加する方が良いでしょう。以下に
例を示します。なお、username は各自のローカルユーザ名に置き換えてくだ
さい。
1) mda "/usr/libexec/mail.local username"
ローカルメーラを指定する方法です。今までは一般的な方法でしたが、
4.2-RELEASE からは、/usr/libexec/mail.local が set-user-id バイナリと
してインストールされなくなった影響で、そのままでは使えなくなった方法で
す。しかし、他の方法に比べ万一なにか問題があった場合でも、外部への被害
を与える心配が無いという意味では安全です。
2) mda "/usr/sbin/sendmail -oem username"
4.2-RELEASE からは、sendmail を指定することになります。もちろんそれ
以前のリリースでも有効な方法ではあります。
3) mda "/usr/local/bin/procmail -d username"
メールの振り分けのために procmail を指定する方法です。上記の二つは単
純にローカルのメールスプールに転送するだけでしたが、独自のスクリプト等
を指定する事で柔軟な処理が行えます。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。