現在PHP+Mysqlを使って簡単な会員制でログインができるサイト(仮想サイト)を作っています。
その中で、特定のメールアドレスにアドレスを送ると、
(POSTで送られてくる情報をmb_send_mailで送信するようにしています。)
IDとPWが自動的に返信されるプログラムを作りたいと思っているのですが、調べてみたのですがよくわからなかったので、書き込ませて頂きました。
phpで自動返信させるのに、現在分かっているのは、
・メールを受け取るユーザーを作成する
・.forwardでどこかへ転送する
くらいです。
最終的にはMysqlと連動させるものを作りたいのですが、ひとまずは送られてきたものに自動返信する、というものを作りたいです。
全然理解ができていないので、わかる方いらっしゃいましたらご教示願います。
よろしくお願い致します。
ローカルの環境は
osはwindows
xampp version2.5
です。
ご質問のような場合、メールサーバ(受信サーバ)が主体となります。
どのようなメールサーバをご利用でしょうか?
たとえば Postfix の場合、aliasesに実行するスクリプトを記述することができます。(ご質問の環境がWindowsですから別のサーバですよね)
たとえば hogehoge アカウントにメールが着信次第、hogehoge.php を実行するのであれば、aliases に
hogehoge: "| /usr/bin/php hoge.php"
のように記述します。
こういう処理は,MTA がプログラムを呼び出すことで実現します.
MTA になにを使うかによって,プログラムの起動の仕方がかわります.
ウェブなどでよく見かける事例は,qmail,Exim,Postfix といった,UNIX系の MTA の例だと思います
例えば,qmail だと,dot-qmail と呼ばれるファイルを記述する事で,受け取ったメイルの内容を,任意のプログラムに渡す事ができます.プログラム側では,受け取ったメイルを見て,処理を進めます.
具体的には,例えば,受け付けるアドレスを,hoge@example.com だとした場合,hoge というユーザの dot-qmail,/home/hoge/.qmail に,
|/usr/local/bin/php -q -f /home/hoge/bin/hogeprogram.php
といった形で記述します
メイルの本文(ヘッダも含め)は,標準入力から取得します.その他,受け取ったアドレスなどが,環境変数が設定されるので,これを使うこともできます
自動返信であれば,送ってきた人のアドレス($_ENV['SENDER'])に対し,mail 関数を使ってメイルを送れば実現できますね
Exim や Postfix,Sendmail でも,.forward といったファイルを使って同様のことができます
早速のご回答ありがとうございます。
オンラインサーバーで使っているXreaのサーバー(anonymous@ s***.xrea.com)を通ってyahooのアドレスに送られてくるようにしているのですが、この場合は、
|/usr/local/bin/php -q -f /home/hoge/bin/hogeprogram.php
などの記述はどこに記述すればいいのでしょうか。
的外れな質問でしたら申し訳ないです。
メールサーバーはローカルのテスト用でMelonを、
「MELON ver1.24 以降上級者向け設定マニュアル」を通読しましたが、スクリプト実行機能は見あたりません。作者の方に直接お問い合わせになってください。
Windows用のメールサーバで、受信時スクリプトが実行できるものとしてはフリーソフトの「Xmailserver」があります。
オンラインサーバーはXreaのサーバーを使っています。
Windows側では OutlookExpress のようなメーラーで受信しているということですね。
であれば、受信時スクリプト実行は諦めて下さい。
やって出来ないことはないと思いますが、SPAMに反応してスクリプトを実行することを防ぐのは難しいので、セキュリティ上、とても危険です。
直接実行する方法はすでに出ているので別案を。
多少の時間差が許されるのであれば、タスクスケジューラーや cron で定期的にメールアカウントを読みに行くプログラムを実行する形でいいと思う。
dot-qmail ファイルでは,転送とプログラムの呼び出しの両方が行えるので,途中の経路であれば,どこに置いても大丈夫です.
XREA の仕様を知らないのですが,格安系のサーバでは,こういったファイルは置けないと思いますし,もし技術的に置けても,規約的に NG と言われる可能性があります.
レンタルサーバで,cPanel というコントロールパネルを用意しているところであれば,バックエンドは Exim ですので,こういった設定が可能である可能性が高いです.(サーバ会社によっては NG)
Plesk は qmail ですが,ユーザレベルでの,dot-qmail の設置はできない仕様です.
事前に,問い合わせると,dot-qmail のようなファイルの設置が可能か否か教えてもらえると思います.
id:pahooさんも言われてる通り,電子メイルは色々と対策が必要な面もあるので,自動処理系はカンタンじゃないと思います.
早速のご回答ありがとうございます。
メールサーバーはローカルのテスト用でMelonを、オンラインサーバーはXreaのサーバーを使っています。
この場合はどのような記述になるのでしょうか。