空メールによる自動返信機能をつけたいのですが・・ - PHPプロ!Q&A掲示板

784

  • 0P

空メールによる自動返信機能をつけたいのですが・・

質問日時 / 2007年11月24日 18:33    回答数 / 1件

Questioner:  mahimahi  このエントリーをはてなブックマークに追加 

キーワード / 空メール    .forward   

いつもこちらで大変お世話になっております。

現在、会員制のサイトを作成中で、登録用のメールアドレスに空メールを送信すると
専用のIDをつけた登録用の専用URLを発行して自動返信するという機能をつけようと
考えていたのですが、いくら調べても構成がわからず困っていました。

わかった事といえば

1.登録用メールアドレスに送信
2..forward(.qmail?)にてプログラムに転送
3.プログラムで解析して専用IDを発行してメール送信

という流れです。

なにがわからないのかというと、

.forwardに書くプログラムへのパスの書き方
(検索するといろいろ出てくるのですがいまいちわからず)
その.forwardのファイルの置場とパーミッション
他のアドレスにも反応してしまわないのか?
IDの発行やメールを送るPHPファイルはどこに置いてあっても問題ないのか?
途中で動きを確認したい時(エラーなど)の確認方法

などわからない事だらけです。

どなたかご理解のある方がいらっしゃいましたら是非ご教授願います。

よろしくお願い致します。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01shimomura使用する登録用のメールアドレスのユーザー名を「exam

回答一覧

並び替え:

A01
answerershimomura [11月26日 23:41] (最終編集:2月29日 22:21)

使用する登録用のメールアドレスのユーザー名を「example」とすると,/home/example/.qmail(OSのアカウントを使用する場合)または
/var/qmail/alias/.qmail-example(qmailのaliasを使用する場合)に転送設定をします。

「.qmail」の内容は,以下のようにします。パーミッションは600が適当かと。
| (/PHPへのパス/)php 登録用スクリプト

登録用スクリプトの場所は特に指定はありませんが,HTTPなどからアクセスできる場所は避けましょう。

メールが届くと,PHP標準入力からソースを読み込みます。メール解析はPEAR::MailのmimeDecodeを用いるとよいでしょう。

  1. <?php
  2.  
  3. //PEARのライブラリ読み込み
  4. require_once("Mail/mimeDecode.php");
  5.  
  6. //メールソースを標準入力から読み込み
  7. $source = file_get_contents("php://stdin");
  8. if(!$source) {
  9.     exit();    // 読み込み失敗
  10. }
  11.  
  12. //メール解析
  13. $params['include_bodies'] = true;
  14. $params['decode_bodies'] = true;
  15. $params['decode_headers'] = true;
  16. $decoder = new Mail_mimeDecode($source);
  17. $structure = $decoder->decode($params);
  18. $from = mb_convert_encoding(mb_decode_mimeheader($structure->headers['from'])mb_internal_encoding()"auto");
  19.  
  20. //メール返信
  21. $to = $from;
  22. $title = "返信";
  23. $body = "登録完了";
  24. $from = "From: example@hogehoge.com";
  25.  
  26. mb_internal_encoding("SJIS");
  27. mb_language("japanese");
  28. mb_send_mail($to$title$body$from);
  29. ?>

空メールでユーザ登録
http://blog.c-production.com/archives/2007/04/post_288.html

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)