私としては、こんな苦労はしなくても、SMTPポートを直接開いて送信してしまったほうが後腐れなくて、すっきりして、爽快なんですが・・・ポートを開くとなると、IDやPWをどこかに保存しておかなければいけません。(もしかしたら自動取得できるのかもしれませんが、どうせ面倒でしょうし、そうなるとどっちが良い方法かわからなくなってきます。)ユーザーさんにも設定してもらわなければいけませんし、極力ファイルに保存しておきたくありません。ステップメールやメールマガジンのように大量配信する場合は、PHPのmail関数は不適切ですから、SMTPポートを開きます。一度に送信するのが1通や2通の場合は、ユーザーさんの設定を軽くしたいな、と思います。Qdmailに組み込まれているソースを使いやすいようにアレンジして、試してみました。動いているっぽいです。確かに、qmailのときはステータス111を返し、sendmailでは1を返してきます。ソースにある100はどんなときに返ってくるんだろう?まぁ今の状態より、より正確な自動判定ができると思うので、導入しようと思います。今の手動で設定する方法も残しておくつもりです。世の中思わぬ動きをするサーバーがあるかもしれません。自動判定できない場合に備えて手動も残しておいたほうが安心です。今機能があるんですから。使っているレンタルサーバーが、Telnet接続を終了させ、今後はsshによる接続のみ利用できるようになってしまいました。今まで、DBのテーブル作成、cronの設定はTelnetで接続して行っていたので、今後のためにも、sshの接続ができるようにしておかなければいけません。テーブル作成やcron設定が、サーバーの管理画面からできれば、私の場合なにもsshで接続する必要はないのですが。接続方法を見ていると、なんだか面倒そうです。管理画面からできればなぁ。サーバーはできるようになっているのですが。いうことを思いながら、管理画面を見ていると、SQL管理ツールというプルダウンが目に留まりました。選んでみると、DB接続でき、SQLが発行できるではありませんか!!しかもMySQL、PostgreSQL両方いけるではありませんか。なんだ、Telnetで面倒な接続をしなくても、テーブル作ったり、中身をちょっと見てみたり、できるんじゃない!なんで今まで気がつかなかったんだぁぁぁぁぁ。後はcronの設定か管理画面からできれば、ssh接続は今のところ必要なくなります。言えば、cronを管理画面から設定できるようにするって以前言ってたなぁ。調べてみると、2008年8月に機能を付けます!とお知らせがきています。管理画面のどこにも見当たりません。隠れているのかな?やや期待して、問い合わせてみました。すると、準備はしているから待って、できるまでsshから設定して、とのこと。そんなわけないでしょうに。cronの設定はWebからできるようにならないか、何度もチャレンジしたのですが、どうしてもできませんでした。ネットに書いてある方法はことごとく当てはまらないのです。なんとかならないかなぁ。4096);}}@fclose($objMail);で読み込むことができます。メールヘッダも本文も、全てが取り込まれるので、ここから必要な情報を抜き出していくことになります。ヘッダと本文は、【¥n¥n】と改行コードが2回続くことで区切られています。【¥n¥n】より前がヘッダ、後ろが本文です。ちなみに、ヘッダも本文も、メールの改行コードは【¥n】です。・のようになっています。1行ずつチェックして、上の形式から必要な情報を取り出します。メールの差出人を会員などに登録する場合、【差出人メールアドレス】を抜き出し、登録処理を行えばOKです。<メールアドレス>の場合もあれば、<メールアドレス>の場合も、メールアドレスの場合もあります。名前、件名などに、日本語が含まれる場合、エンコードされてますから、【mb_decode_mimeheader】でデコードしてください。ステップメール】を空メール登録に対応させることができます。ステップメール】への空メール登録へ対応してみることにしました。空メールだけでなく、本文に姓名が書いてあれば、名前も登録されるようにしたいと思います。これを実現するためには、メールを受信したらCGIを実行する、という設定がサーバーに必要になります。この設定ができるものに、【aliases】、【procmail】、【.forward】ファイルがあるようです。レンタルサーバーで一番使われているのが、【.forward】ファイルのようなので、ここでは【.forward】ファイルで試してみることにします。サーバーによっては、セキュリティ上設定を許可していないものもあるようです。実行したいCGIのパス"】となります。/usr/home/xxx/yyy/run.php"】のようになります。ご自分のサーバーの環境に合わせてパスは変更してください。これでメール受信と同時に【run.php】が実行されます。【.forward】ファイルはメールの転送を設定するファイルですが、転送先にCGIファイルを指定すると、プログラムを実行できるようになります。【.forward】で転送を設定する場合は、無限転送にならないように十分注意してください。永遠にメールが転送され続け、サーバーに無駄で過大な負荷がかかることになります。再度、RewriteRuleを使ってアクセス制御の必要に迫られました。今度は、URLにパラメータ(クエリ)が付いています。やってみたのですが、うまくいきません。たどり着いたのが、サーバー変数です。[L]--------------------------------------------------------------------です。http://sample.ooo/sample.html?id=ABCD&code=EFGHもhttp://sample.ooo/sample/sample.php?id=ABCDとなります。このほかにも便利なサーバー変数が色々あります。こねくり回して、やっと思う動きを実現できました。以前から自分のブログを見て気がついていたのですが、例えば、http://sample.xxx/sub_dir/へアクセスすると、sub_dirは存在しないのに、きちんとページが表示されています。これは一体どういう仕組みなのでしょう。始めは、http://sample.xxx/index.phpなど、トップディレクトリのインデックスファイルでアクセスを制御しているのかと考えました。これでは制御できない気がします。アクセスを制御するファイルをおき、特定のディレクトリやファイルへのアクセスを、別のファイルへ飛ばしているのでしょう。それは多分【.htaccess】ファイルです。自分のブログを調べると、ありました。【.htaccess】。中身を見ると、なにやら書いてあります。わからないので、ネットで調べてみました。【RewriteRule】を使えばよいそうです。サーバーがApacheなら使えます。とばすことができます。あとは、index.phpで$fileの値を調べ、表示するページを作ればOKです。RewriteRuleが参考になります。1つ勉強になりました。SE・PGやっていました。次の良い仕事がみつからないので、ビジネスへ注力しようと思っています。