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()で確認してあるので間違いはないはずなのですが・・・。
他にどこか設定するところがあるのでしょうか?どうぞよろしくお願いいたします。
apacheを再起動していないのではないでしょうか?
var_dump( ini_get( "SMTP"));
var_dump( ini_get( "smtp_port"));
?>
のようなファイルを作成し,アクセスしたときに設定した値が出てきますか?
ありがとうございました。いまapacheを再起動後、上のスクリプトを試してみたところ、
string(9) "localhost" string(2) "25"
となりました・・・。
ごめんなさい そいういうことですか、
それと、php.iniの設定が反映されることが前提にないと
話にならないのは判ると思いますが、
エラー文を見ると、localhostが無いという事で
php.iniのデフォルトのlocalhost設定のまま
つまり、php.iniの変更が反映されて無いのではと思うのですが
php.iniの送信許容などを変更して変更できてるか確認してみてください。
php.iniで設定が出来るのであれば
踏むメールサーバーの情報が全く無いのでなんとも言えませんが
送信サーバーをyahooとして
自分の登録してあるyahooアカウントを使い
実際の送信が成功するかを問わずエラーをとりあえず出なくするとすれば
SMTP = ヤフーメールサーバ
sendmail_from = 登録したメールアドレス
ヤフーでは送信できませんが、私のメールサーバならこれで送信できます
ありがとうございました。
実にお恥ずかしいのですが、いじっているphp.iniが間違えておりました・・・orz。
php.iniのほかのところをいじって反映されるかどうか、おっしゃるとおりにテストしてみて気付きました・・・。
ありがとうございました!(自分の間抜けさ加減が許せん・・・)
ありがとうございました。
SMTPですが、localhostにメールサーバーをたていないので、他のところから送りたいのです。なお、www.foo.comはDummyで、実際は自分がいつも使っているSMTPサーバーを書いています。