« Win2000 でも cygwin ssh のログ監視してIPアドレス指定ブロック | メイン | てすと »
2005年12月20日
セカンダリメールサーバを cygwin exim で
[ カテゴリ : memo - 自宅サーバ設定(Linux、たまにWindows) ]
といいながら、プライマリが Vine の postfix である場合のメモ。
Vine 側は普通に動けばいい、、とみせかけて、謹製 /etc/postfix/main.cf の中で、
unknown_local_recipient_reject_code = 450
になってるのは、550 にすること。
これは、セカンダリがうけつけた「存在しないユーザ宛メール」に対して、「一時的エラー」として返すのではなく「致命的エラー」として返すようにという設定。
一時的エラーとしてしまうと、セカンダリのほうで「あとでリトライしよー」ということになってしまい、結果セカンダリの一時フォルダに SPAM とかがチクセキしてしまうのでした。(気付くのに相当かかったよコレ)
うちで使ってるのは SMTP AUTH 対応化したヤツなので、過去の記事でも見てください。
~
で、Secondary のほうは cygwin の setup.exe で入れて、exim-config やると、
Windows サービスとして登録されるので、あとはサービス起動するようにすればいい。
んで /etc/exim.conf の設定のみメモ。
acl_check_rcpt で、プライマリに存在しないユーザー宛のメールをはじくため、
deny
domains = +relay_to_domains
message = unknown user
log_message = 3 unknown user in callout check
!verify = recipient/callout=20s,defer_ok,no_cache
とかいうのを
accept domains = +relay_to_domains
endpass
verify = recipient
の前に入れる。これは、配送先サーバに問い合わせして受取人チェックをするが、
問い合わせできない場合は受け容れる。そしてキャッシュをしない、というもの。
(postfix はこれに550 って返してくれないといけない)
あと、配送は begin routers の後にでも
sendback_to_primary:
driver = manualroute
transport = remote_smtp
domains = +relay_to_domains
route_list = "*domainame primary.servername byname"
host_find_failed = defer
no_more
とか。
で、当然 relay_to_domains とかはしっかり設定して、リレー禁止とかになるようにと。
終わってみれば簡単なんだけど、苦労した。
投稿者 JK : 2005年12月20日 09:03
トラックバック
このエントリーのトラックバックURL:
http://om.pizzica.to/mt-tb.cgi/45