• 締切済み

PHPで自動メール送信をしたいのですが

PHPを利用して一ヶ月未満でPCにつての知識ほとんどありません。 どうかよろしくお願いします。 本題ですが。今自分がPHPでやりたいことは。 送信ボタンをクリックして何日後にメールを送りたいのですが。出来るのでしょうか? 一応md_send_mail()を利用してクリックするとメールは送る事はできました。 OS:MAC OS X 10.3.7 PHPVersion 5.0.2

みんなの回答

  • hisappy
  • ベストアンサー率46% (184/392)
回答No.3

以前開発したシステムでの手法ですが、 ・通常は送信処理待ちHTMLをブラウザで表示。  (JavaScriptにて時間を監視) ・送信時刻になったら、送信PHPをコール。  (送信PHPへSubmit) ・送信PHPは送信対象となるデータがあれば  送信処理を行う。 ・送信処理が終了したら、送信処理待ちHTMLに戻る。 という感じの手順で実現させました。 ネットショップの販売店からの受注受付メール送信や 発送連絡メールの送信などで使用されるものでした。 実際には1つのPHPの稼動時間30秒の壁や、 送信処理中エラーの対処などいくつかの問題点が 発生してきます。 なおこの手法の場合、送信処理待ちHTMLを稼動させる クライアントのマシンを24時間稼動させる必要があります。 ということで、md_send_mail()で送信できる環境であるのなら、 一応実現させる方法もあるというお話でした。

すると、全ての回答が全文表示されます。
回答No.2

希望の方法はPHPだけでは実装出来ません。 PHPと言うよりはサーバのスケジュール機能を利用する方がハードルが高いかもしれませんね。 MacOSXですとドキュメントも少ないと思いますが、頑張って下さい。とは言え、一般的なUNIX(Linux)的な方法でも実装可能です。 例えば、私が考える実装方法ですと。。。 メールを送信するプログラムを sendmail.phpとします。 メールを送信するかしないか判断するプログラムを check.phpとします。 メールの内容及び送信したい日を書いたデータをmaillog.logとします。 check.phpを1時間毎等、定期的に起動させ、メールを送信するかしないかを判断します。送信しない場合は無視。送信する場合はsendmail.phpをインクルードしてメール送信します。 定期的に起動するスクリプトには、MacOSXでも実装されているcronを利用します。MacOSXでもcrontab -eでcronの編集が出来ます。また、PHPを利用するため、これも最初からMacOSXに入っているcurlを利用します。 私はTerminal.appからcron編集しますが、GUIで編集出来るツールもあるようです(下記リンク:私は使った事が無いです)。 例--------- 2 * * * * /usr/bin/curl http://yourdomain.com/check.php (毎時2分にcheck.phpをcurlでチェックする) cronの編集方法はLinuxと同じですので、cronで検索してみると良いかもしれません。

参考URL:
http://www.koch-schmidt.de/cronnix/index.html
tadon
質問者

お礼

大変有難うございました。一度やってみます。何かありましたらまたお願いします。

すると、全ての回答が全文表示されます。
noname#202916
noname#202916
回答No.1

1.メールを送るだけのスクリプトを別ファイルとして 保存します。 2.送信ボタンを押した時に動くロジックではメールを 配信せず、何かテキストファイルなどに保存します。 上記1にて作成したメール配信スクリプトを、スケジューラなどで実行します。1で作成したスクリプトには2で作成したテキストファイルを読み込むロジックを実装 します。

すると、全ての回答が全文表示されます。

関連するQ&A