XAMPP(http://www.apachefriends.org/xampp.html)を使ってローカル開発環境を立ち上げています。


phpを使ってメール送信をしようと、

php.iniを下記のように変更しました。

[mail function]
; For Win32 only.
SMTP = www.foo.com
smtp_port = 25

ところが、phpからmail()を呼び出すと、

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\htdocs\foo\hoge.php on line 20

といわれてしまいます。なぜphp.iniの設定が反映されないのでしょうか?ちなみにphp.iniのpathはphpinfo()で確認してあるので間違いはないはずなのですが・・・。

他にどこか設定するところがあるのでしょうか?どうぞよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/03/21 01:28:53
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:kaij No.1

回答回数33ベストアンサー獲得回数1

ポイント27pt

SMTP = www.foo.com

の所を

SMTP = localhost

でいいのでは

id:wm100

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

SMTPですが、localhostにメールサーバーをたていないので、他のところから送りたいのです。なお、www.foo.comはDummyで、実際は自分がいつも使っているSMTPサーバーを書いています。

2006/03/20 23:57:59
id:elf No.2

回答回数76ベストアンサー獲得回数8

ポイント27pt

apacheを再起動していないのではないでしょうか?

var_dump( ini_get( "SMTP"));

var_dump( ini_get( "smtp_port"));

?>

のようなファイルを作成し,アクセスしたときに設定した値が出てきますか?

id:wm100

ありがとうございました。いまapacheを再起動後、上のスクリプトを試してみたところ、

string(9) "localhost" string(2) "25"

となりました・・・。

2006/03/20 23:56:08
id:kaij No.3

回答回数33ベストアンサー獲得回数1

ポイント100pt

ごめんなさい そいういうことですか、

それと、php.iniの設定が反映されることが前提にないと

話にならないのは判ると思いますが、

エラー文を見ると、localhostが無いという事で

php.iniのデフォルトのlocalhost設定のまま

つまり、php.iniの変更が反映されて無いのではと思うのですが

php.iniの送信許容などを変更して変更できてるか確認してみてください。


php.iniで設定が出来るのであれば

踏むメールサーバーの情報が全く無いのでなんとも言えませんが

送信サーバーをyahooとして

自分の登録してあるyahooアカウントを使い

実際の送信が成功するかを問わずエラーをとりあえず出なくするとすれば

SMTP = ヤフーメールサーバ

sendmail_from = 登録したメールアドレス

ヤフーでは送信できませんが、私のメールサーバならこれで送信できます

id:wm100

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

実にお恥ずかしいのですが、いじっているphp.iniが間違えておりました・・・orz。

php.iniのほかのところをいじって反映されるかどうか、おっしゃるとおりにテストしてみて気付きました・・・。

ありがとうございました!(自分の間抜けさ加減が許せん・・・)

2006/03/21 01:27:54

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません