質問: **WEBサーバー:さくらのレンタルサーバー スタンダード** **DNSサーバー:さくらではない企業(すいませんここは公開できません)** 諸処の事情でDNS管理会社を変えられず **DNSのAレコードをさくらに向けてもらい**WEBサイトを構築しました。 **メールフォーム(PHP7.2 ライブラリ不使用)を作成したところサイトドメインと同じメールアドレスにメールが届かない**ので調べたところ。 さくらの中でCGIでメールフォームを作成するとさくらのDNSしか読みに行かないためエラーが出るとのこと。対処としては 1. **さくらにDNSを移管する** 2. **一旦、別のメールに飛ばして転送する** ですが、 **1.はミスや何かが起きた時にメールが止まるためリスクが大きく採用できない** **2.はさくらの仕様をリテラシーがない決済者にする必要ありあり、社内で通らない可能性がある。** と詰んだ状態になっております(2.なんて本当にアホくさいですが)。 上記状況を回避する他の手立てはありますでしょうか。 教えて頂けますと助かります。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/5382a92f347ce6c1de4f0c5487eb3a27.gif) 同じ状況の方を発見しました 同一ドメインで、Webとメールを別サーバで運用したときのメール送信問題
回答: > > 上記状況を回避する他の手立てはありますでしょうか。 > > > ということなので、とりあえず一例を回答。 どのようなプログラムで送信しているのか不明ですが... さくらのレンタルサーバで、sendmail コマンドで送信される「自ドメイン」宛のメール送信は、サーバー自身で稼働している MTAの「受信ドメイン」にマッチして local 配送されるため、サーバーから外部に配信されないだけと思われます。(サポートからは公式回答はもらえなかったので、色々テストしてメールヘッダからの推測ですが...) たとえば、PHP の mail 関数は、php.ini の sendmail_path で設定する sendmail コマンドを利用するため、上記の制限を受けます。( 実行時設定参照 ) perl の CGI や PHP スクリプトでも自ドメインの外部 SMTP サーバに SMTP 通信して送信することで、別プロバイダで運用している「同じドメイン」宛にメールを配送することは可能です。 手元で管理している中で、問題なく動いている実例としては、こんなのがあります。 【環境】 DNS : お名前.com / Web : さくらのレンタルサーバ / メール : G Suite 【プログラム概要】 さくらのレンタルサーバに設置されている PHP 製メールフォームから PHPMailer を使って、 G Suite のサブミッションポート(587)へ接続して G Suite 経由で、自社ドメイン、他社ドメインの全メールを送信。 -- 参考: * PHPMailer