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

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

新規登録して質問してみよう
ただいま回答率
85.50%
さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

PHP

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

Q&A

解決済

3回答

10694閲覧

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

i_sugiyama_tomo

総合スコア85

さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

PHP

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

0グッド

0クリップ

投稿2019/04/22 02:15

編集2019/04/22 03:32

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

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

ですが、

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

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

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

イメージ説明

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/04/22 02:19

> サイトドメインと同じメールアドレスにメールが届かない を、具体的・客観的に書いてください。
otn

2019/04/22 02:44

いやそれは、わかるのですが、「メールが届かない」部分。 どういう手段で、メールを送ると、どうなるのでしょうか? 「メールフォームで」という抽象的な表現じゃなくて、「こういうコードで」みたいな具体的な説明。 「届かない」というのは、エラーメッセージが出たり、エラーメールが返るのであれば、その内容。 > さくらの中でCGIでメールフォームを作成するとさくらのDNSしか読みに行かないためエラーが出るとのこと。 これはサポートの正式な回答ですか?
otn

2019/04/22 02:45

MXレコードの回答が付いていますが、今までメールが届いていたと言う事は、MXレコードはあるんですよね?
i_sugiyama_tomo

2019/04/22 03:19

サーバー移転したら、今まで使えていたフォームが使えなくなった。 という話です。そこは新規にサイトを立ち上げるのでも同じなので必要ないかと思い書いていませんでした
mather

2019/04/22 04:07 編集

otnさん メールはMXレコードが存在しない場合はAレコードを参照するため、Aレコードで示されたサーバーの25番ポートを確認しに行きます。おそらくこの方針だと思ったので、DNSサーバーにMXレコードさえ設置できれば完了だと思ったのですができないそうです。DNSを管理しているのが親会社とか?
otn

2019/04/22 08:10

MXレコードが存在しなければ、サクラサーバー以外からもメールが届かないはずなので、MXレコードはあると思いました。 とにかく、私の質問への回答を待ちます。
i_sugiyama_tomo

2019/04/22 08:46

上記に追加した図の通り、MXレコードはさくらじゃない方のDNSサーバーが持っております。さくらじゃない方のDNSに一旦受けて、Aレコードで判別してさくらにウェブサイトへのリクエストを送っています。
i_sugiyama_tomo

2019/04/22 08:50

私の拙い状況報告を詳しく書いてくださっているページのURLも掲載しましたので御覧ください
otn

2019/04/22 08:54

とにかく、私の質問への回答を待ちます。
i_sugiyama_tomo

2019/04/22 08:57

> さくらの中でCGIでメールフォームを作成するとさくらのDNSしか読みに行かないためエラーが出るとのこと。 これはサポートの正式な回答ですか? 上の図に書いたとおり、それがサポートの正式な回答です。
i_sugiyama_tomo

2019/04/22 08:59

一つ書き忘れたのはライブラリでオブジェクトを使ってではなく、PHPプリセットの関数で書いているということぐらいです。
otn

2019/04/22 09:19

さくらのDNSを見るとしても、それはお使いのドメインの権威サーバーじゃないので、お使いのドメインの権威サーバーを見に行くはずです。 > さくらの中でCGIでメールフォームを作成するとさくらのDNSしか読みに行かないためエラーが出る というのは、本当に正式回答の一言一句そのままですか?
i_sugiyama_tomo

2019/04/23 00:11 編集

>さくらのDNSを見るとしても、それはお使いのドメインの権威サーバーじゃないので、お使いのドメインの権威サーバーを見に行くはずです。 さくらのDNSは使っていません(管理者はさくら以外と記載しています)。 そして「さくらの仕様として」「お使いのドメインの権威サーバーを見に」いかないのです。 仕様についてのわかりやすさですとこちらを見ていただいたほうが良いかと思います。 https://www.evoworx.co.jp/blog/domain-mail-problem/
otn

2019/04/23 03:58 編集

> さくらのDNSは使っていません(管理者はさくら以外と記載しています)。 それは最初から分かっています。 > そして「さくらの仕様として」「お使いのドメインの権威サーバーを見に」いかないのです。 「正式回答の一言一句そのままですか?」についてはどうなのでしょう? CHERRYさんの回答の通り、DNSの問題じゃなくてSMTPサーバーの設定の問題だと思っているのですが。 > https://www.evoworx.co.jp/blog/domain-mail-problem/ 質問に追記したサイトですよね?同じ事を何度も書く必要はないです。
i_sugiyama_tomo

2019/04/23 05:05 編集

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

回答3

0

ベストアンサー

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

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


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

さくらのレンタルサーバで、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/22 09:40

編集2019/04/22 09:41
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

i_sugiyama_tomo

2019/04/23 00:14

ご回答有り難うございます PHPMailerの実装で確認してみます。 成功しましたら報告いたします
i_sugiyama_tomo

2019/04/23 05:02

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

0

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

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

投稿2019/04/22 02:22

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

i_sugiyama_tomo

2019/04/22 02:28

ところがさくらでDNSを管理しないとMXレコードがいじれないので設定ができません。 そのうえ、CGIのメールアドレスについては自社のメールサーバーを見に行ってエラーを出すというクソ仕様ですので、上記方法は使えません。 書き方が拙くてもうしわけありません
mather

2019/04/22 07:22

経緯はわからないですが、MXレコードをいじれない以上はさくらでメールを受け取るしかないですね。 さくらにメールサーバは無いんですっけ?
i_sugiyama_tomo

2019/04/22 08:48

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

2019/04/22 15:01

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

2019/04/23 00:13

サポートいわく、それもさくらのサーバーの中なのでエラーをダストのことでした。念の為試しましたがだめでした。 仕様などの詳細はこちらの方が詳しく解説してくださっています https://www.evoworx.co.jp/blog/domain-mail-problem/
guest

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 04:31

編集2019/04/23 04:38
otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

i_sugiyama_tomo

2019/04/23 05:02

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

2019/04/23 05:32

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

2019/04/23 09:19

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問