ここから本文です

解決済みの質問

知恵コレに追加する

自作PHPメールフォームでメールが受信できません。

syapapaさん

自作PHPメールフォームでメールが受信できません。

自作で作成したPHPメールが受信できません。
入力した人に返送するConfirmationメールは正常に送信できているのに、アドミの方にはメールが送信されません?受信できない?状況です。いろいろと試しているものの解決しません、基本的な間違いをしてるかも知れませんが、自己解決ができないのでご教授下さい。

Current PHP version: 4.3.11
サーバー:Yahoo(米国)レンタルサーバー

====CODE====
mb_language('ja');
mb_internal_encoding("UTF-8");

//Create Short Variable Names
$str_sub = $_POST['sub'];
$str_cate = $_POST['cate'];
$str_name = $_POST['name'];
$str_phone = $_POST['phone'];
$str_email = html_entity_decode ($_POST['email'], ENT_COMPAT, 'UTF-8');
$str_comme = $_POST['comme'];
$header= "Category: " .$str_cate . " Subjefct:" .$str_sub;

//Email Address for Administrator
$toaddress = "admin@gmail.com";
$mailcontent .= "Subject: " .$str_sub ."\n";
$mailcontent .= "Comment: " .$str_comme ."\n\n";
$mailcontent .= "-----\n";
$mailcontent .= "Name: " .$str_name ."\n";
$mailcontent .= "Phone: ".$str_phone ."\n";
$mailcontent .= "E-mail: " .$str_email ."\n\n";
$mailcontent .= "-----\n";

//Auto Message for a Customer
$header2 = "Test has received your mail";
$from = "noreply@test.com";
$toaddress2 = $str_email;
$body = "Hello " .$str_name .",\n\n";
$body .= "Thank you! Your inquiry has been submitted to test. We will be in contact with you via E-mail within a couple business days. \n\nBest Regards, \n\nTest \n\n";
$body .= "----- Questions/Comments ----- \n";
$body .= $str_comme ."\n\n";
$body .= "----- Your information ----- \n";
$body .= "Name: " .$str_name ."\n";
$body .= "Phone: " .$str_phone ."\n";
$body .= "Email: " .$str_email ."\n";
$body .= "-----";

//Send data to admin
mb_send_mail($toaddress2,$header,$mailcontent,"From:$email");
//Send date to customer
mb_send_mail($toaddress,$header2,$body,"From:$from");
====/CODE====

まだまだ未熟者で原因がまったくわかりません、どうぞお力添えをお願いいたします。

補足
ご回答ありがとうございます。

記載のGmailはダミーです。実際には独自ドメインのメールアドレスと私の個人的なアドレスを二つ入れておりました。どちらも未着です。独自ドメインやフリーメールへの送信がサーバー側でコントロールされているような気がします。

$emailはユーザーが入力したメールアドレスで、$fromにはnorepley@test.comというダミーのアドレスが入ります。

とりあえずサーバー側を調べてみたいと思います。

違反報告

ベストアンサーに選ばれた回答

katubeyさん

同サーバーで送信出来ないのであれば、メールの送信者のアドレスは、独自ドメインのアドレス以外からの送信が出来ないとか
じゃないでしょうか?$from と $email は同じですか?

補足について -------->
http://smallbusiness.yahoo.com/
今も使ってますが、YAHOOのWEBホスティング(アメリカ版)スモールビジネスなら送信元は取得したドメイン以外は規制されていますよ。

  • 違反報告
  • 編集日時:2011/5/18 21:36:06
  • 回答日時:2011/5/17 17:04:42

質問した人からのコメント

  • まったく仰るとおりでした。

    友人のサイトでしたので、本人からHosting Account情報をもらいYahoo Web HostingのFAQを調べ、手順通りに設定し反映待ちであります。

    最初に確認しておくべき事でした。

    本当にありがとうございます。
  • コメント日時:2011/5/19 18:00:03

グレード

この質問・回答は役に立ちましたか?
役に立った!

お役立ち度:お役立ち度 0点(5点満点中)0人が役に立つと評価しています。

ベストアンサー以外の回答

(1件中1〜1件)

 

tezcelloさん

Gmail 宛のメールが届かないという事でしょうか?
admin@gmail.com なんていうアドレスが取れるわけ無いでしょうからダミーでしょうけど、まずはアドレスがあっているかご確認を。
もちろん Gmail 以外のお手持ちのメールアカウントから Gmail へ送信できるかも大丈夫ですよね?

最近は迷惑メール対策で、共用のレンタルサーバから、独自ドメインのメールを送信する事がかなり難しくなったように思います。これに該当しますか?

チェック項目として
・サーバにログインして、コマンドラインから送信できるか。
・Gmail で迷惑メールとして振り分けられていないか。
・Gmail が逆引きできない(正引きと不一致)場合に拒否していないか。
__spf がキチンと書かれていればOKかも

借りているサーバのドメインが拒否されていると難しいでしょうね。


<< 追加 >>
> 独自ドメインやフリーメールへの送信がサーバー側でコントロールされているような気がします。
ご利用サーバの形態が不明なままで書いておりますが、
「サーバ契約時に指定されたメールアカウント以外を from に指定して発信できない」という事は経験があります。

> とりあえずサーバー側を調べてみたいと思います。
「逆引きや spf で裏付けされたメール以外を受け取らない」のは(迷惑な話ですが)非常に多いです。
スクリプトが動作するサーバだけではなく、送信先サーバの受信の基準も確認が必要では?
Gmail も逆引きできないと受け取らないという記事も見かけました(公式サイトではないので正確であるかは不明)し、共用サーバでは他のユーザのせいで締め出しを喰らう事もままあるようです。

共用サーバでは逆引きが使えるはずが無いので、どうしても独自ドメインでメールを送りたければ、専用サーバ(あるいはVPS)じゃないとNGかもしれません。

メール送信時のログが見られれば解決に近づき易いと思いますが、可能なサーバでしょうか?
PEAR の Mail::send() で、バックエンドに SMTP を指定すればデバッグメッセージも取れるので、現象が掴み易いかもしれません。
http://pear.php.net/manual/ja/package.mail.mail.send.php
http://pear.php.net/manual/ja/package.mail.mail.factory.php

  • 違反報告
  • 編集日時:2011/5/18 16:59:03
  • 回答日時:2011/5/18 08:59:34

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

話題のキーワード

[カテゴリ:PHP]

ただいまの回答者

00時48分現在

3970
人が回答!!

1時間以内に7,956件の回答が寄せられています。

>>回答ひろばに行く