- 締切済み
PHPでHTMLのページ飛ばす方法とコマンドラインの実行
プログラム上からメール送信がしたくて、PHPの手習い中超初心者ですが、 (1)PHPから強制的に特定のHTMLファイルの表示に行く方法が分かりません。header(Location; )で飛んでから処理(メールの送信)をしても良いかなとも思いますますが、他に良い方法あれば教えてください。 (2)PHPのMail関数でMailがエラーなく終わるのですが、メールが届きません。ArGoSoftのMailServerでOutlookExpressからは、自由に送信着信可能です。コマンドラインから方法でEXEC()にパラメータを渡せるならその方法でやろうかとも思っていますが、何か良い方法はあるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- moon_night
- ベストアンサー率32% (598/1831)
>1)Locationってheaderの所に書かないとダメみたいなこと、どこかで読んだのですが。問題ないのでしょうか? 問題ありません。文字を出力(printやecho)前にやると最初は覚えていたほうが覚えやすいかもしれません。 (2)PHPでメール送信の方法を書籍やNetで調べて、mail(),mb_send_mail()などを試しても、正常終了したように見えるのですが、メールが届きません。php.iniのSMTPもプロバイダーのsmtpサーバ名にしたり、自分の立ち上げたサーバーの127.0.0.1や固定IPでつないでいるDNSにしてみたりしていますが、手ごたえありません。プログラム上からメール送るために、PHPをにわか勉強してる超初心者なのですが、PHPの作動をモニターするような方法はないのでしょうか。 プロバイダのSMTPを指定すればできるはずです。 ただし、プロバイダ側で、特定の接続先からでないとSMTP接続を許してくれないところがあります。 その場合はメール送信用のものを自前で用意するしかありません。 Win用のsendmail(有料。高い)を入れるとか、メールサーバをいれて、そこから送信するようにしないといけません。
- moon_night
- ベストアンサー率32% (598/1831)
(1) 普通にメールを送信してからLocationで飛ばせばいいと思います。 (2) 普通はSendmailが使用されると思いますが、php.iniかなんかでSMTPを指定できるかと思います。そのような設定はしていますか? タイトルにあるコマンドラインの実行と言うのは何かしたいのですか?
お礼
WinとUnix系とで、php.iniが違うのですね。php.iniのsmtp=にプロバイダーのsmtpサーバー名うお入れるだけで、成功しました。ありがとうございました。
補足
ミスタイプしていたのに、お答え頂いてありがとうございます。 widowsXpPro上でやっています。 (1)Locationってheaderの所に書かないとダメみたいなこと、どこかで読んだのですが。問題ないのでしょうか? (2)PHPでメール送信の方法を書籍やNetで調べて、mail(),mb_send_mail()などを試しても、正常終了したように見えるのですが、メールが届きません。php.iniのSMTPもプロバイダーのsmtpサーバ名にしたり、自分の立ち上げたサーバーの127.0.0.1や固定IPでつないでいるDNSにしてみたりしていますが、手ごたえありません。プログラム上からメール送るために、PHPをにわか勉強してる超初心者なのですが、PHPの作動をモニターするような方法はないのでしょうか。 メール送信に成功した唯一の方法がコマンドラインからの送信なので、Exec()関数でできないか思ってるのですが。pathかphp.iniがおかしいのかもしれませんが、htdocディレクトリに置いた.phpファイルに書いたfunction_exist()で、一応使っている関数が存在することは確認しています。超初心者であることを念頭に、抜けてそうなことのアドバイス頂ければ有難いです。よろしくお願いいたします。
お礼
アドバイスいただいているのに気がつくのが遅くなり失礼しました。PHPからのメール発信もできるようになりました。php.iniで単にSMTP=にプロバイダーのsmtpサーバーを指定して、mb_Language('Japanese')とmb_send_mail('あて先アドレス','表題','本文','メーラーに表示される発信者名')で発信できました。LinuxとWindowsでphp.iniのどこが違うかを明確に書いたものに出会わなかったため、たった二行のプログラムにずいぶん時間がかかりました。固定IPをとっていたため、OP25B対策にひっかからなくてすんだようです。 Locationの件情報ありがとうございました。厚く御礼申しあげます。