phpで作成された単純なメール送信フォームからメールを送信しようとしたところ
ある特定の条件で送信エラーになるという現象に悩まされました。
その条件というのは以下の通りです。
・送信フォームの設置されているドメインと同一のドメイン宛のメールのみ送信されない
どういうことかと言うと、例えばメール送信フォームの設置されている
Webサイトのドメインが「sample.com」だったとして、
メールの宛先が「xxx@sample.jp」の場合はちゃんと届くけれど、
「xxx@sample.com」の場合には届かないというものです。
もう少し環境・状況を詳しく説明しますと、
1. WebサーバーはWindows 2003 server IIS 6.0 (恐らくあまり関係ない)
2. PHP 5.12
3. Classic ASP (basp利用) だと同一ドメインでも送信可能
4. WebサーバーのローカルにSMTPサーバーを展開
5. MailサーバーはWebサーバーとは別のサーバー上に設置
調べてみたところ、5(4も?)が原因だったと思われます。
IISのSMTPログを見てみたところPHPから同一ドメイン宛にメールを送信した際には全くログに記録がなく、
どうも
php「xxx@sample.com宛のメール?それなら今ボクの設置されてるサーバの所でしょ。
勝手に送信しておくね。あれ?」
てな具合でDNS参照もせず、ローカルのSMTPも使わずに送信しようとしてエラーになってしまうようです。
似たような現象にあっている人がいたので参考になりました。
さくらインターネットのPHPでMail関数を使うとInternal Server Errorになってしまう
phpの問題のような気がしますがどうでしょうか。
私はあまり深くは検証していませんが・・・
今回はサブドメインにしても良いとのことだったので宛先を「xxx@zzz.sample.com」に
変更することで回避できました。
0 件のコメント:
コメントを投稿