• 締切済み

PHP mail()受信できません

PHP超初心者です、よろしくお願いします。 PC環境:Windows 7 サーバー:XAMPP1.7.7上でのlocal server PHPバージョン:5.3.8 下記簡単なコーディングで、試していますが、送信は下記条件のTrueのとおり”メールが送信されました”とでますが、該当のメイルアドレスに受信しません。メイラーのjunk に入っているかも確認しましたが、入っていません。宛先のメイルアドレスは、MSNのホットメイルとniftyのメイルアカウント両方で試しましたが、同じです。 とても基本的なミスをしているかもしれないのですが、どなたかご教授くださいませ。 <?php if (mail("my_account@live.com", "TEST MAIL", "This is a test message.")) { echo "メールが送信されました。"; } else { echo "メールの送信に失敗しました。"; } ?>

みんなの回答

  • 1minn
  • ベストアンサー率57% (52/90)
回答No.2

提示されているプログラムコードは問題ないです。 恐らくPHPがmail送信処理を投げている先だと思います。 PHP単体で実際の送信処理が行われているわけではありません。 プログラムを書くだけだと、そんな気がしてしまいますが、実際には他のメール送(受)信機能を持ったプログラムに対してキューを投げるだけです。 きちんとキューを投げるとmail関数の処理は「正常」なのでtrueが返されます。 ご提示のプログラムの場合は、送信者は誰になりますか? 送信元が何も定義されていない状態ではメールは送れませんよ。 iniの設定はどうなっているのでしょうか? linuxだとデフォルトでsendmailにメール送信を実行させます。 windowsでの標準は忘れましたが、xamppだとmercuryが一緒に入りますので、mercuryに対しての設定をしてやれば送信できます。 少し古いバージョン(1.7.2とか)でwindowsローカルからの送信を行おうとした時は、デフォルトで入っていたMercuryがうまく動かなくて、単体で入れ直した記憶があります。 また、個人でインターネット契約されているプロバイダのメールアドレスや、gmailなども送信に利用出来ます。 「PHP gmail 送信」などで検索すればいろいろと情報は得られると思います。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

win版だとsmtpサーバーをphp.iniで指定すると思うのですが きちんとされていますか? 環境に依存しない意味ではPEAR::Mailの方がいいかもしれません

参考URL:
http://pear.php.net/manual/ja/package.mail.mail.php
Akiko_de
質問者

お礼

早速のご回答ありがとうございます! smtpサーバーの設定はしておりますが、ご提案の方法で再度挑戦し、結果を明日ご連絡いたします。

Akiko_de
質問者

補足

ご回答内容から、下記プログラムを実行してみましたところ、 <?php include('Mail.php'); $recipients = 'sample@nifty.com'; $headers['From'] = 'sample@nifty.com'; $headers['To'] = 'sample@nifty.com'; $headers['Subject'] = 'Test message'; $body = 'Test message'; $params['sendmail_path'] = '/usr/sbin/sendmail'; // Mail::factory メソッドを使用してメールオブジェクトを作成します $mail_object =& Mail::factory('sendmail', $params); $mail_object->send($recipients, $headers, $body); ?> 下記エラーが発生しました。 Strict Standards: Non-static method Mail::factory() should not be called statically in C:\xampp\htdocs\test\mail_test_sendmail.php on line 15 Strict Standards: Non-static method Mail_RFC822::parseAddressList() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Mail.php on line 253 Strict Standards: Non-static method PEAR::raiseError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Mail\sendmail.php on line 164 Strict Standards: Non-static method PEAR::getStaticProperty() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\PEAR.php on line 871 ?> やはり全く意味がわからなく行うことに、無理があるように思います。 PHPを学ぶコース(学校)を探してみます。 ご教授感謝いたします。

関連するQ&A