重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

メールフォームに関する質問があります。
例えば、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-genera …
このリンク先の右側にあるメールフォームが正にそのものです。

この仕組みを、一般的なメールフォームと比較して、php初心者でも理解できるように教えていただけないでしょうか?
また、この形式のメールフォームは、無料スクリプトが出回ってますでしょうか?

よろしくお願いします。

A 回答 (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インジェクション などのキーワードで検索するといろいろでてきます。
学ぶことがきりがないものですが、ゆっくり時間をかけてがんばってください。なにごとも簡単にはいかないものですからね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/05/16 01:51

勉強のためにも、まず3人とか考えずにAさん一人だけとしてコードを書いてみてはどうですか?


それだけなら、フォームから内容を受けて、mb_send_mail でも使えば1発ですよね?
あとは、各ページごとに、宛先部分だけを書き換えるだけ、ということ。何人増えてもいっしょです。

一般的なメールフォームといっしょですよ。宛先を変えるだけ。その宛先は、どこから?データベース?テキストファイル?
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/05/15 20:15

通常のメールソフトを考えてみましょう。



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
    • good
    • 0
この回答へのお礼

ご回答いただきどうもありがとうございます。返事が遅れてしまい申し訳ありません。

ご説明いただいた、DさんからA、B、Cさん宛てに同時に送信されるメールフォームではなく、DさんがAさんのページのメールフォームを使えばAさんに、BさんのページからはBさんに送信されるメールフォームというようなメールフォームの仕組みを教えていただきたいのです。

私の説明不足で誤解を招いてしまい申し訳ありません。

http://tokyo.kijiji.co.jp/c-Events-events-genera …
↑のサイトでは、各ページからそのページの掲載者宛てに連絡が取れるメールフォームが設置されています。掲載者のメアドは非公開です。この仕組みを教えていただけないでしょうか?

お時間がありましたら再びご回答お願いします。

お礼日時:2008/05/02 03:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!