• 締切済み

PHP でmb_send_mailが上手くいかない

PHP初心者です。現在、自分のパソコンにXAMPPをインストールして、 Apacheを起動し、PHPのサンプルを勉強しいています。 mb_send_mail自体はTRUEで返ってくるのに、メーラーには何も届きません。 書籍やネットにあったサプルをいろいろ調べたのですが、 みな、同じ現象です。 php.iniの設定は下記の通りです。(phpは5.4.7) [mail function] ; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury SMTP = localhost smtp_port = 587  <----25にしても変わりませんでした。 ; For Win32 only. http://php.net/sendmail-from sendmail_from = postmaster@localhost PHPのソース <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); if (mb_send_mail("cy0***@md.point.ne.jp", "テストメール", "これはテストです。", "From: chibikind***@yahoo.co.jp")) { echo "メールが送信されました。"; } else { echo "メールの送信に失敗しました。"; } ?>

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.5

> smtp_port = 587 SMTPのポート番号に587を指定すると言う事は、接続にSMTP認証を使用しているはずです。 SMTP認証が必要な場合はmb_send_mail()が使用できませんので、認証が不要な25番ポートで使用できるSMTPサーバを使用するか、PEAR::MailなどSMTP認証に対応できる機能を使用するしかありません。

senko0306
質問者

お礼

ご回答ありがとうございました。

senko0306
質問者

補足

XAMPPについているMerqryを調べて設定してみましたが、それでもダメでした。 PEARは使った事が無いのでこれから調べてみようと思います。 それにしてもたかがローカルからローカルへメールを送る事すらできないので、PHPって難しいなあと思いました。

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

phpの用意したmail系の関数はWinでは制限もおおいでしょうし PEAR::Mailなどで外部サーバー経由で送った方がよいとおもいますよ http://pear.php.net/manual/ja/package.mail.mail.php

senko0306
質問者

お礼

ご回答ありがとうございました。

senko0306
質問者

補足

ありがとうございます。教えて頂いたサイト、PHP初心者の自分にはちょっと敷居が高いようで、自分のパソコンにメールを送ってテストしてみたいだけなのです。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.3

ローカルでSMTPサーバを動かしていないのであれば、インターネット接続に利用しているプロバイダーのSMTPサーバを利用することになります。 SMTP = localhost にはプロバイダーのSMTPサーバのホスト名又はIPアドレス、smtp_port = 587 にはプロバイダーから指定されているSMTPサーバのポート番号を入れます。 また、sendmail_from = postmaster@localhost にはご自身のメールアドレスを設定してください。 プロバイダーのSMTPサーバがSMTP認証やPOP before SMTPなど認証が必要な場合mb_send_mail()でメール送信できませんので、ご自身でSMTPサーバを用意するなどの対策が必要になります。

senko0306
質問者

お礼

ご回答ありがとうございました。

senko0306
質問者

補足

ありがとうございます。おっしゃる通り(多分なのですが)やってみたのですが、 やっぱり送信できませんでした。 [mail function] ; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury ;SMTP = localhost SMTP = *****.md.point.ne.jp smtp_port = 587 ; For Win32 only. http://php.net/sendmail-from ;sendmail_from = postmaster@localhost sendmail_from = *****@md.point.ne.jp SMTPサーバをたちあげる事までは考えておらず、(やり方もわからない) PHPとmysqlの勉強がしたかっただけなのですが、 なかなかうまくいかないものですね。 XAMPPについているMerquryを起動してphp.iniを書き換えればいいのでしょうか?

回答No.2

ローカルホストにメールサーバ入ってるの? 入ってないなら使ってるプロバイダのSMTPとか指定しないとだめだよ。

senko0306
質問者

お礼

ご回答ありがとうございました。

senko0306
質問者

補足

すみません。XAMPPのapacheとPHPのみでメール送信できる物と思い、SMTPサーバーの稼働等は行っておりません。 php.iniのSMTPを自分のメーラーのSMTPサーバと同にしてみましたが、それでもダメでした。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

SMTP = localhost と設定されていますが、ご自身のパソコンでSMTPサーバは稼働していますか?

senko0306
質問者

お礼

ご回答ありがとうございました。

senko0306
質問者

補足

すみません。XAMPPのapacheとPHPのみでメール送信できる物と思い、SMTPサーバーの稼働等は行っておりません。

関連するQ&A