質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.37%

  • PHP

    25047questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • さくらのレンタルサーバ

    21questions

さくらのレンタルサーバーでメールフォームが使えない

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 545

WEBサーバー:さくらのレンタルサーバー スタンダード
DNSサーバー:さくらではない企業(すいませんここは公開できません)

諸処の事情でDNS管理会社を変えられず
DNSのAレコードをさくらに向けてもらいWEBサイトを構築しました。
メールフォーム(PHP7.2 ライブラリ不使用)を作成したところサイトドメインと同じメールアドレスにメールが届かないので調べたところ。
さくらの中でCGIでメールフォームを作成するとさくらのDNSしか読みに行かないためエラーが出るとのこと。対処としては

  1. さくらにDNSを移管する
  2. 一旦、別のメールに飛ばして転送する

ですが、

1.はミスや何かが起きた時にメールが止まるためリスクが大きく採用できない
2.はさくらの仕様をリテラシーがない決済者にする必要ありあり、社内で通らない可能性がある。
と詰んだ状態になっております(2.なんて本当にアホくさいですが)。

上記状況を回避する他の手立てはありますでしょうか。

教えて頂けますと助かります。

イメージ説明

同じ状況の方を発見しました
同一ドメインで、Webとメールを別サーバで運用したときのメール送信問題

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • i_sugiyama_tomo

    2019/04/23 09:10 編集

    >さくらのDNSを見るとしても、それはお使いのドメインの権威サーバーじゃないので、お使いのドメインの権威サーバーを見に行くはずです。

    さくらのDNSは使っていません(管理者はさくら以外と記載しています)。
    そして「さくらの仕様として」「お使いのドメインの権威サーバーを見に」いかないのです。

    仕様についてのわかりやすさですとこちらを見ていただいたほうが良いかと思います。
    https://www.evoworx.co.jp/blog/domain-mail-problem/

    キャンセル

  • otn

    2019/04/23 12:46 編集

    > さくらのDNSは使っていません(管理者はさくら以外と記載しています)。
    それは最初から分かっています。

    > そして「さくらの仕様として」「お使いのドメインの権威サーバーを見に」いかないのです。
    「正式回答の一言一句そのままですか?」についてはどうなのでしょう?
    CHERRYさんの回答の通り、DNSの問題じゃなくてSMTPサーバーの設定の問題だと思っているのですが。

    > https://www.evoworx.co.jp/blog/domain-mail-problem/
    質問に追記したサイトですよね?同じ事を何度も書く必要はないです。

    キャンセル

  • i_sugiyama_tomo

    2019/04/23 14:04 編集

    あ、そういう意味でしたのですね。理解が足りていませんでした。
    素直に「外のDNSに解決に行けやさくらのボケぇ」と考えてたので
    DNSの問題かと思う取りました。

    キャンセル

回答 3

checkベストアンサー

+3

上記状況を回避する他の手立てはありますでしょうか。

ということなので、とりあえず一例を回答。


どのようなプログラムで送信しているのか不明ですが...

さくらのレンタルサーバで、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 経由で、自社ドメイン、他社ドメインの全メールを送信。

--

参考:

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/23 09:14

    ご回答有り難うございます

    PHPMailerの実装で確認してみます。
    成功しましたら報告いたします

    キャンセル

  • 2019/04/23 14:02

    PHPMailerの実装で解決しました。ありがとうございました。
    それにしてもさくらの(以下自粛

    キャンセル

+1

サイトドメインと同じメールアドレス

自社ドメインのメールアドレスということでしょうか?
既に受信用のメールサーバがあるのであれば、 DNSのMXレコードを追加しメールサーバのIP(またはドメイン)を指定してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/22 17:48

    上記の図の通りの配置です。さくらのメールサーバーに一旦送って転送しようとしてもだめでした。

    キャンセル

  • 2019/04/23 00:01

    自分たちのメールアドレスに飛ばすことを考えず、さくらのメールサーバーに直接取得しに行けばいいんじゃないですか?

    キャンセル

  • 2019/04/23 09:13

    サポートいわく、それもさくらのサーバーの中なのでエラーをダストのことでした。念の為試しましたがだめでした。

    仕様などの詳細はこちらの方が詳しく解説してくださっています
    https://www.evoworx.co.jp/blog/domain-mail-problem/

    キャンセル

0

さくらのサポートからの回答内容が不明なのと、具体的にどうやってメールを送っているのか不明なままですが、
メールを送っている方法はローカルの25番ポートに繋いでいるか、/usr/lib/sendmailを起動しているかどちらかであろうと思うので、いくつか案です。

案1:サーバーのSMTPがPostfixなのか本来のsendmailなのか不明ですが、そこを確認して、システム標準でない設定ファイルを作り、その設定ファイルには自ホスト名を別のものを付けて、コマンドラインでその設定ファイルを指定したSMTPを直接起動するように、php.iniのsendmail_pathを設定する。
⇒ 上記説明の意味が分かるのであれば、簡単だが、サポートの回答が不明なため、さくらレンタルサーバーでできるか不明。

参考:私はVPSを使っていますが、同様の問題が出たので、Postfix上ではホスト名をサブドメインを付けた物に変えて解決しました(本来のホスト名はexample.jpだがPostfix設定ファイル上でmyhostnamem.example.jpにすることで、foo@example.jp宛のメールを外に飛ばしている)。

案2:宛先ドメインを自分でDNSを引いてMXレコード(ないしAレコード)を調べ、そのIPアドレスのホストの25番ポートにSMTPで送る。
⇒ 確実だが、面倒そうなのでお薦めでない

案3:サーバー外で、自分が使えるSMTPサーバーのサブミッションポートに認証して送る。(CHERRYさんの案と同じ)
⇒ 難しくはない

案4:お客様問い合わせなのような固定のメールフォームで送る先が自ドメインのみなのであれば、さくらのSMTPを使わず、自ドメインのメールサーバーに直接送りつける。
⇒ これでいいなら一番簡単

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/23 14:02

    DNS関連のさくらの対応を見ていますとphp.iniはいじらしてくれそうにないのでPHPmailerで解決しました。いろいろ身バレするのが怖いので情報小出しになってすいませんでした。

    キャンセル

  • 2019/04/23 14:32

    昔、さくらのレンタルサーバーを使っていましたが、サーバーコントロールパネルから自分専用のphp.ini設定が書けるはずです。

    キャンセル

  • 2019/04/23 18:19

    ありがとうございます。
    本件はなんとかPHPmailerで解決できましたが、
    他のトラブルの際の参考にさせていただきます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • PHP

    25047questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • さくらのレンタルサーバ

    21questions