質問: sendmail 8.14.4を使用しています。 メールボックスは、メインのWebサーバと同じドメインながらDNSのMX値を変更して、別のサーバで運用しようと考えています。 ただ、WebからCGIで送信されたメールが、Webサーバと同じメールボックスへ届いてしまい、別のサーバで運用しているメールボックスへ届いてくれません。 これは、sendmailの設定を変更すればよいのでしょうか。 無知で申し訳ないのですが、設定方法などを教えて頂ければ幸いです。
回答: 仮にドメインがexample.jpであるとして、Webサーバ(ホスト名はwww.example.jpと仮定)とメールサーバ(ホスト名はmail.example.jpと仮定)の双方でSendmailが動いているとします。 WebサーバのCGIから送信したメールがWebサーバのメールボックスに届くのは、次の2点が関係していると思われます。 * Webサーバの/etc/mail/local-host-names にexample.jpと書いてある * バーチャルホストの機能を使ってるならWebサーバの/etc/mail/virtuser-domainsにexample.jpと書いてある * local-host-names,virtuser-domainsの両方にexample.jpと書いてあることもある 上記の通りであれば、次のような手順でよいかと思います。 1. Webサーバの/etc/mail/local-host-namesはwww.example.jpと入力 2. Webサーバの/etc/mail/local-host-namesにexample.jpと書いてあれば中身を消す 3. メールサーバの/etc/mail/local-host-namesにmail.example.jpと入力 4. バーチャルホストを使ってるならメールサーバの/etc/mail/virtuser-domainsにexample.jpと書く 5. バーチャルホストを使ってるならメールサーバの/etc/mail/virtusertableも設定する 6. バーチャルホストを使ってないならメールサーバの/etc/mail/local-host-namesにexample.jpも書く 7. 双方のsendmailを再起動する 仕組みとしては、sendmailはlocal-host-namesやvirtuser-domainsにexample.jpと書いてあったら、***@example.jp宛のメールは自分宛と判断して、そのsendmailが動いているホストのメールボックスに配送しようとします。 おそらくWebサーバのlocal-host-namesかvirtuser-domainsにexample.jpって書いてあるから、Webサーバが自分宛と判断しているのでしょう。 local-host-namsやvirtuser-domainsにexample.jpと書いていなければ、sendmailはDNSを検索してexample.jpの受け取り先をMXから見つけて、メールサーバにリレーすると思います。