- ベストアンサー
sendmailでローカルに届く問題の解決方法
- 質問者は、sendmailでリモートにメールを送りたいが、ローカルに届いてしまう問題に直面しています。
- DNSの設定が原因で、メールが誤ってローカルのspoolに溜まってしまっています。
- sendmailの設定を調整することで問題を解決できる可能性があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
お使いのhostBがsendmailのSMTPサーバーであるという前提で、「CF」を使用してsendmail.cfを作成している場合と、sendmail.cfを直接編集されている場合の設定方法をご説明させていただきます。 ---- 1.「CF」を使用してsendmail.cfを作成する場合 まず、下記の修正をsendmail.defに加えます。 ・MY_DOMAIN=sub.domain.ne.jpに変更 ・FROM_ADDRESS=domain.ne.jpを設定 ・STATIC_ROUTE_FILE='domain.deliver'を設定 ・ACCEPT_DOMAIN='sub.domain.ne.jp'に変更 さらに外部ファイルでsendmail.defのあるディレクトリ内で下記の内容の ファイル、domain.deliverを作成します。 GW esmtp: [hostA] DOM domain.ne.jp 上記の双方の設定が完了したらsendmail.cfを作成します。これでおそらくは 送信者user@domain.ne.jp(hostB)からuser@domain.ne.jp(hostA)への メール転送が可能になると思います。 ---- 2.sendmail.cfに直接書き込む場合 sendmail.cfの下記設定の修正/追加をしてみてください。 DMsub.domain.ne.jp DSdomain.ne.jp その上で、下記のどちらかの設定をsendmail.cfに追加します。 (1)設定方法A DMやDSといった設定の最後の当たりに下記の行を追加します。 DAesmtp:[hostA] CAdomain.ne.jp (2)設定方法B S0(Ruleset0)内に下記行を追加します。 R$*<@$*domain.ne.jp>$* $#esmtp $@[hostA] $:$1<@$2domain.ne.jp>$3 上記の(1)、(2)のどちらでもおそらくはほぼ同じ動作をするはずなのでどちらを 設定するかはお好みに合わせていただければよいと思います。 ---- なお、[hostA]と書かれている定義部分はhostAのIPアドレスを[ ]で囲んで記入する事を意味しています。ホスト名での定義も可能なので、DNSを検索させる場合にはhostAのホスト名をDNSのフルアドレスで記入し、その場合には[ ]で囲む必要はありませんので注意してください。 さらにここで注意して頂かないといけないのはhostBでスタティック転送の設定をしても、ローカルドメイン名がdomain.ne.jpである限り、domain.ne.jp宛のメールはhostBのサーバー内でスプールされてしまい、それ以上転送されないということです。ですから、FROM_ADDRESSのみをdomain.ne.jpとして、ローカルドメイン名はsub.domain.ne.jp等の別のドメイン名にする必要があります。十分注意してください。 長くなりましたが、参考になれば幸いです。 読みにくい説明で申し訳ありません。
お礼
お礼が遅れてもうしわけありません。 HostAが私の管理外にあったもので、実際にメールがHostAに届いているかを確認するのに時間がかかってしまいました。 が、ちゃんと転送されていました。 ありがとうございました!! 丁寧に2ケースまで紹介して頂き、とても助かるとともに、勉強になりました。