同一ドメインで、Webとメールを別サーバで運用したときのメール送信問題(2020/07/03追記)

Blog

Webをさくらのレンタルサーバ、メールを別サービス、ドメイン管理をさくら以外にしてAレコード・MXレコードをそれぞれのサーバに割り当てていた場合、さくらのレンタルサーバ内に設置したphpなどのメールフォームでそのドメインのメールアドレスを入力するとInternal Server Errorが発生します。

わかりにくいのでもう一度。

  1. Webとメールを下記のように運用します。
    ・Web:http://www.sample.co.jp
    ・メール:○○@sample.co.jp
  2. Webサーバをさくらのレンタルサーバにして、メールサーバは別サービスを使います。
  3. ドメイン管理は他社で、Aレコードにさくらのレンタルサーバ、MXレコードにメールサーバの情報を入力してもらいます。
  4. Webサーバに送信先を info@sample.co.jp のような、同一ドメインを設定したメールフォームを設置します。
  5. 送信するとInternal Server Errorが発生します。

※1 ローカルなどのテスト環境では正常に送信できているものとする。
※2 送信先を別ドメインにした場合も、メールフォームのアドレス欄(自動返信先)に info@sample.co.jp と入力してもInternal Server Errorが発生します。

phpのフォーム内部でGmailなどの外部SMTPを設定しても解決されず。
どうやら送信先に設定されているドメインがウェブサーバに設定されているドメインと同一なせいで、
SMTPを経由する前に内部で処理しようとして、該当のメールアドレスが見つからずにエラーを吐いているようでした。

検索してまずでてきたのは、さくらのコントロールパネル内で、送りたいメールアドレスと同じユーザ名でメールアドレスを作成することで、そのアドレスが存在すると錯覚させるというもの。
とはいえ、メールが届くのはさくら内。(試しに info@sample.sakura.ne.jp から info@sample.co.jp に転送したら無限ループ発生しました)
そもそも該当のドメインのメールのユーザ数が結構な数だったため、同じ設定をさくら内にもするのは現実的でないためこの方法は却下。

メールサーバーが外だということが伝われば直るかなーと思ってはいたものの、
さくらのコントロールパネル内の「 このドメイン宛のメールは別サーバで受信する( 上級者向け )」にチェックが入れられない限り、この問題は解決しないようでした。

【参考】

ドメイン管理は他社だったので、ゾーン設定でどうにかなるかの実験はできなかったんですが、素直に解決するならドメイン管理もさくらに移すのが無難そうです。  

ちなみに、弊社でとった解決策は、特にphp製のフォームを使わなければいけない理由もないのでフォームのみ別ドメイン(別サービス)で運用するというもの。
フォームだけサブドメインに移すことでもたぶん解決するとは思います。

たぶん。


2020/07/03追記

なんとさくらの新コントロールパネルから、別会社で取得したドメインでも「メールの利用範囲」の『選択したドメインはメールでは利用しない』が選択可能になっていました!これで送信できる…!

https://help.sakura.ad.jp/360000238462/#05