重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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 "メールの送信に失敗しました。";
}

?>

A 回答 (2件)

提示されているプログラムコードは問題ないです。


恐らくPHPがmail送信処理を投げている先だと思います。

PHP単体で実際の送信処理が行われているわけではありません。
プログラムを書くだけだと、そんな気がしてしまいますが、実際には他のメール送(受)信機能を持ったプログラムに対してキューを投げるだけです。
きちんとキューを投げるとmail関数の処理は「正常」なのでtrueが返されます。

ご提示のプログラムの場合は、送信者は誰になりますか?
送信元が何も定義されていない状態ではメールは送れませんよ。


iniの設定はどうなっているのでしょうか?
linuxだとデフォルトでsendmailにメール送信を実行させます。
windowsでの標準は忘れましたが、xamppだとmercuryが一緒に入りますので、mercuryに対しての設定をしてやれば送信できます。

少し古いバージョン(1.7.2とか)でwindowsローカルからの送信を行おうとした時は、デフォルトで入っていたMercuryがうまく動かなくて、単体で入れ直した記憶があります。

また、個人でインターネット契約されているプロバイダのメールアドレスや、gmailなども送信に利用出来ます。
「PHP gmail 送信」などで検索すればいろいろと情報は得られると思います。
    • good
    • 0

win版だとsmtpサーバーをphp.iniで指定すると思うのですが


きちんとされていますか?
環境に依存しない意味ではPEAR::Mailの方がいいかもしれません

参考URL:http://pear.php.net/manual/ja/package.mail.mail. …

この回答への補足

ご回答内容から、下記プログラムを実行してみましたところ、

<?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を学ぶコース(学校)を探してみます。
ご教授感謝いたします。

補足日時:2011/12/06 10:30
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/12/05 17:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!