• ベストアンサー

設置されているページごとに宛先が異なるメールフォーム

メールフォームに関する質問があります。 例えば、Aさん、Bさん、Cさんがexample.comで各自ページを公開しているとします。example.com/a.html~b.html~c.htmlという感じです。これらのページをDさんが訪問し、各ページにあるメールフォームを利用して3人に連絡を取ろうと試みます。3人はexample.comに自分のメールアドレスを登録しており、Dさんにメールアドレスを公開せずに、メールフォームを通じて自分にメールが送られてきます。メールフォームにはDさんのメールアドレスの入力が必須となっていますので、3人はDさんに返信することが可能です。 http://tokyo.kijiji.co.jp/c-Events-events-general-5-11-W0QQAdIdZ26942177 このリンク先の右側にあるメールフォームが正にそのものです。 この仕組みを、一般的なメールフォームと比較して、php初心者でも理解できるように教えていただけないでしょうか? また、この形式のメールフォームは、無料スクリプトが出回ってますでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • SHlVA
  • ベストアンサー率48% (20/41)
回答No.3

フォーム処理は基本部分なので、まずは試行錯誤しながらやるといいですね。 とりあえず、私ならこうする、というフローでも書いてみます。 -----フォームのページ---- formの中に 「メールアドレス」 <input type="text" name="mail" /> など 「タイトル」 「内容」 を入力してもらい、隠し(<input type="hidden" name="id" value="A" />など)で、宛先のユーザーIDを持ち運ぶ -----処理のページ---- 各種値を受け取る。値があるか確認も含めて。 $id = $_POST['id']; など データベースに宛先IDからメールアドレスを問い合わせて取得(mysql関数とか)。なければエラーでも。 mb_send_mail にてメール送信。 結果を表示 ---------------------- これが基本的なものでしょうか。 まずは"動く物"を作ればいいんです。あとあとより綺麗な処理やコードに進化させればいいんですから。 あと注意が必要なのは、セキュリティはいろいろ大変ですから、しっかり勉強してくださいね。上の処理でも、セキュリティをしっかりやらないといけない箇所が、「値を受け取る箇所」「データベース処理」「結果を表示する」などにあります。 PHP XSS(クロスサイトスクリプティング) SQLインジェクション などのキーワードで検索するといろいろでてきます。 学ぶことがきりがないものですが、ゆっくり時間をかけてがんばってください。なにごとも簡単にはいかないものですからね。

londonmind
質問者

お礼

なるほど! 概念的ではありますが、形が見えてきました。 セキュリティは重要ですよね。 興味が続く限り、ゆっくり勉強しようと思います。 この度はご説明ありがとうございました。

その他の回答 (2)

  • SHlVA
  • ベストアンサー率48% (20/41)
回答No.2

勉強のためにも、まず3人とか考えずにAさん一人だけとしてコードを書いてみてはどうですか? それだけなら、フォームから内容を受けて、mb_send_mail でも使えば1発ですよね? あとは、各ページごとに、宛先部分だけを書き換えるだけ、ということ。何人増えてもいっしょです。 一般的なメールフォームといっしょですよ。宛先を変えるだけ。その宛先は、どこから?データベース?テキストファイル?

londonmind
質問者

お礼

宛先はデータベースからです。 phpを始めてまだ間もないので、これから勉強を重ねて頑張ろうと思います。 ご回答ありがとうございました。

  • ayucat
  • ベストアンサー率12% (7/55)
回答No.1

通常のメールソフトを考えてみましょう。 To(宛先)に、aaa@exaple.com, bbb@exaple.com, ccc@exaple.comと書いたメールを作って、Dさんが送信すると、Aさん、Bさん、Cさんに届くはずです。 いくつの宛先にアドレスにメールを送るかはメールフォームの違いではありません。 PHPのmail関数を使う場合だとここが参考になります。 http://jp2.php.net/manual/ja/function.mail.php ここのtoに「User <user@example.com>, Another User <anotheruser@example.com>」というのが載っていますが、カンマで区切っていくつも書けば、同時に同じ内容を送ることができます。

参考URL:
http://jp2.php.net/manual/ja/function.mail.php
londonmind
質問者

お礼

ご回答いただきどうもありがとうございます。返事が遅れてしまい申し訳ありません。 ご説明いただいた、DさんからA、B、Cさん宛てに同時に送信されるメールフォームではなく、DさんがAさんのページのメールフォームを使えばAさんに、BさんのページからはBさんに送信されるメールフォームというようなメールフォームの仕組みを教えていただきたいのです。 私の説明不足で誤解を招いてしまい申し訳ありません。 http://tokyo.kijiji.co.jp/c-Events-events-general-5-11-W0QQAdIdZ26942177 ↑のサイトでは、各ページからそのページの掲載者宛てに連絡が取れるメールフォームが設置されています。掲載者のメアドは非公開です。この仕組みを教えていただけないでしょうか? お時間がありましたら再びご回答お願いします。

関連するQ&A