• 締切済み

PHP で form を使って mail を送る方法とそのホームページからのみの mail を受け取る方法

私のホームページの中でPHPを使ってメールフォームを作成し、ホームページの読者からのコメントを私のメールアドレスに受け取るようにしました。 自分でこのコードをテストして見た所、ちゃんと自分自身のメールアドレスにテストメールが届きます。ですが、ジャンクメール(ごみメール)も多く届くようになりました。 そこで質問です。私のホームページからのメールと他のメールを自動的に区別したいのですが、どうしたら良いのでしょうか? 今、考えているのは、 私のホームページからのメールに「特定の送り主」のメールアドレス(私のホームページからのメールだという印として)をつける、 受け取る私のメールサイト(例えば hotmail)のフィルターを使ってこの「特定の送り主」以外からのメールを自動的に削除、あるいはブロックする、 というようなものです。ですが、どのようにしたら、 『私のホームページからのメールに「特定の送り主」のメールアドレス(私のホームページからのメールだという印として)をつける』 という事が出来るのでしょうか? 私のメールフォームには読者のメールアドレスを記入する欄も設けてあり、この「読者のメールアドレス」と上記「特定の送り主」メールアドレスを区別しないといけません。 あるいは、私とは別のアイデアでジャンクメールを止める方法はありませんか? (このために1つ新しく hotmail アカウントを持っているのです。私のホームページからのメール以外は受け取りたくはないのです。) よろしくお願いします。

  • PHP
  • 回答数6
  • ありがとう数8

みんなの回答

回答No.6

コード見ました。 「sendmail」という関数はPHP標準では存在しないのですが、mail関数かmb_send_mail関数をラップしたものでしょうか。 各引数には何を渡すことになっているのかがわかりませんので、変数名でなんとなく判断します。 とりあえず、$subjectに渡しているであろうユーザが書いた件名は本文(おそらく$message変数でしょうね)にかくとして <?php $subject = '■■■お問い合わせあり■■■'; //きめうちで。 ?> このような感じで、記述してやり、本文($message)の内容を、 <?php $message = " 件名:{$subject} 本文: {$body} "; ?> とか、といったような書式にしてやると。 そうすれば、必ず件名は一定で、送られてくるメールの内容には、ユーザが書いた文字が入っているようになるでしょう。 こんな感じでいかがでしょう。

回答No.5

遅くなりましたが、あけましておめでとうございます。 話がそれてしまったようで申し訳ございません。 hotmailのフィルタ機能がどの程度のものか、わかりませんが、 PHPにてhotmailに対してメールを送信するのであれば、 (1)メールのfrom情報は常に一定 (2)メールの件名も常に一定に出来る ということと思いますので、どちらか(または両方で)フィルターをかけてやればいいのではないでしょうか。 方法としては、フォームに入力されたメール送信者のメールアドレスや、件名としたものをすべてメールの本文に入れてしまって、 メールの件名を「■■■■■お問い合わせ■■■■■」などと固定値にしてやれば、 件名に関してはフィルターが容易になると思います。 メールのfrom(送信者)の情報も、固定値で質問者さんの何らかのメールアドレスが入っていることと思いますので、それでフィルターをかけることも出来ると思います。 別の回答者さんが言っていた特殊なヘッダをくっつける、という方法に関しましては、 ただいまhotmailのアカウントにログインし、フィルターの設定を見てみたところ、 フィルター設定が出来そうにないです。(方法論としては良いと思うのですが。) ただ、疑問なのが、「ジャンクメールが増えた」という点です。 メールアドレスを直接どこにも公開していないのに増えるというのは何かおかしい気がします。 後はPHPの作りとかによるのでなんともいえないのですが、メール送信機能の部分や、訪問者に記入させるフォームのHTMLとかをここで公開していただくことは出来ませんか?(誰かが作ったフリーウェアとかならそのURLとか)

nobu_us
質問者

お礼

たびたびの回答を有難うございます。 なるほど、 「フォームに入力されたメール送信者のメールアドレスや、件名としたものをすべてメールの本文に入れてしまって、」 メールの件名や私のメールアドレスでフィルターをかける方法がありますね。まだPHPに慣れていないので多少時間がかかるかもしれませんが、試行錯誤しながら試してみます。 >別の回答者さんが言っていた特殊なヘッダをくっつける、という方法に関しましては、 >ただいまhotmailのアカウントにログインし、フィルターの設定を見てみたところ、 >フィルター設定が出来そうにないです。(方法論としては良いと思うのですが。) そうなんですよ、特殊なヘッダをつけても hotmail フィルター設定が出来そうにないんですよ、あるいは私がそのやり方を知らないからかもしれませんが。 >ただ、疑問なのが、「ジャンクメールが増えた」という点です。 >メールアドレスを直接どこにも公開していないのに増えるというのは何かおかしい気がします。 はい、不思議ですがマシン(プログラム)が自動的に送っているのだと思います。例えば私がメインに使用しているメールアドレスを abc1@hotmail.com だとして、新たに abc2@hotmail.com や abc3@hotmail.com といったアドレスを新たに作って使用するのであれば、番号が違うだけでほぼ似たアドレスですからマシン(プログラム)も容易くアドレスを探し出してジャンクメールを送りつけるのだと思います。 ちなみにコードは、ファイルネームを send_mail.php として 、、、 elseif(!empty($message) && $errors == 0) { $reciever_email = "MyEmailAddress@hotmail.com"; if (sendmail($reciever_email, $from , $from , $reciever_email , $name, $subject , $message)) { $error = "<b>Successfully Sent.</b><br>"; unset($from); unset($name); unset($subject); unset($message); $from = ""; $name = ""; $subject = ""; $message = ""; } else { 、、、 また、HTML の中に 、、、 <form action='send_mail.php' method='post'> <table align=center> <br> 、、、 と記入しています。 繰り返しますが、度々の回答を本当にありがとうございます。感謝しています。

回答No.4

■Captcha認証について コレは仰るとおり画像認証のことです。 動的に画像を生成して、生成された画像に記述されている文字列を記入させる、って奴ですね。 私が触ったことがあるのは下記のライブラリぐらいです。 http://www.phpcaptcha.org/documentation/quickstart/ クイックスタートページのURLですが、ここの上のほうにあるDownloadからライブラリのダウンロードが出来ます。(バージョンは、1.0.3.1をダウンロードしたほうがよさそうです) ダウンロードするとパッケージ内にサンプルコードもありますのでこれで実装してみてはいかがでしょう。

nobu_us
質問者

お礼

回答をありがとうございます。 年末年始のため、返事が大変遅れて申し訳ありません。 「はなし」(回答)が別の方向(画像認証?)に向いているようなので元?に戻したいと思います。 「画像認証」などという高度?な事はわかりませんが、私が望むのは、 『私のホームページからのメールに「特定の送り主」のメールアドレス(私のホームページからのメールだという印として)をつける』か「WEBからのメール送信はメールのヘッダに追加情報を埋め込み、受信するメールで判別する」ことを望んでいます。メールの受信は hotmail で行いたいと思います。 どのようにしたら良いでしょうか? また新たに下記のような質問を立ち上げました。 「PHPによるWEBからのメール送信で、メールのヘッダに追加情報を埋め込み、受信するメールで判別する方法」 です。(この質問サイトや上記のサイト、どちらに回答をして頂いても私にメールが届くので、どちらに回答されてもかまいません)

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.3

メールフォームのソースには貴方のメールアドレスの記載は無いのですよね? それなら、No.2さんも書いているように画像認証などをしてロボットなどから送られないようにしたほうがいいです。 また、WEBからのメール送信はメールのヘッダに追加情報を埋め込み、受信するメールで判別すればいいです。

nobu_us
質問者

お礼

回答番号 No.2, No.3 の方、回答を有難うございます。 >メールフォームのソースには貴方のメールアドレスの記載は無いのですよね? 私のPHPの code には私のメールアドレスが書いてありますが、browser (Firefox や Internet Explorer)の View->Page source では見る事が出来ません。(どうしてでしょう?) >画像認証などをしてロボットなどから送られないようにしたほうがいいです。 どうやったら画像認証をする事が出来るのでしょうか? >WEBからのメール送信はメールのヘッダに追加情報を埋め込み、受信するメールで判別すればいいです。 はい、この「メールのヘッダに追加情報を埋め込み、、、」のひとつの手段としてメールの送り主のメールアドレス(この場合私のメールフォームからのアドレス)を追加情報として埋め込み、このメールを受信する hotmail でこのアドレスの送り主からだけを受け取り、それ以外は迷惑メールとして自動的に削除したいのです。hotmail では(あるいは他のメーリングシステムでも?)、指定したメールアドレス以外のメールを自動的に消す、無視する事が出来ますから、特定のメールアドレスを指定したらそれ以外のメールは迷惑メールフォルダーに入りますが、すぐに消されて迷惑メールフォルダーはいつも空です。この hotmail のシステムを利用したかったのでこの質問をしたのです。 どうやったら送り主のメールアドレス以外にヘッダに追加情報を埋め込み、受信する hotmail で判別出来ますか?あるいは hotmail に代わる別の方法がありますか? また、No.2さんからの >Webサイト上のフォームでスパム対策するなら最低限Captchaくらい実装しようね。 とはどういう事をいうのでしょうか?「Captcha」とは画像認証の事でしょうか?まだまだ web の初心者で申し訳ありません。質問だらけですがよろしくお願いします。

  • oraora777
  • ベストアンサー率20% (56/268)
回答No.2

これったPHP一切関係ないよね。 質問者が使っているメーラーの問題だよね。 Webサイト上のフォームでスパム対策するなら最低限Captchaくらい実装しようね。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

(1)とにかく予測がつかないような名前でメアドをつくる。 (2)そのメアドは絶対にインターネットにさらさないようにする。 (3)フォームからメールを送付する際にセッションなどをうまくつかう などでよいかと。 受け側でフィルターするのはなにかと面倒です。

nobu_us
質問者

お礼

早々の回答を有難うございます。 また、質問ですが、 (2)そのメアドは絶対にインターネットにさらさないようにする。 は、PHPでは私のホームページの page source を簡単に見る事は出来ないと思いますので、私のメールアドレスを特定する事は難しいと思います。あるいは別の方法で私のメールアドレスを読者から隠す事が出来るのでしょうか? (3)フォームからメールを送付する際にセッションなどをうまくつかう。 セッションをうまく使うとはどういう事でしょうか?私はまだまだPHPの初心者です。よろしくお願いします。

関連するQ&A

  • ホームページにメール送信フォーラムをつける方法

     僕のホームページに読者側からも好きな宛先にメールを送信できるフォーラムをつける方法を教えてください。できれば送り主の指定もできるようにしたいです。

  • メールフォームから通知メールが届かない…

    こんばんわ。 小さなイラストサイトを運営しているのですが、 そこにつけているメールフォーム、 もしくはメッセージ通知メールを送るhotmailが 少し変なのです。 状況: ・テストでメールフォームからメッセージを送っても、設定したアドレス(hotmail)に通知メールが届かない。 ・メッセージはレンタルしたサーバ経由で届きます。 ・メール受信内容のログではちゃんと テストで送ったメールが見れます。 ・hotmailにはメッセージ通知メール以外 きちんと届いてます。 ・設定を詳しく見ることはできません ないとは思いますがメールフォームからの コメントを無視しているかも…と心配しています。 ちなみにメールフォームはこちらから借りています http://www.future-s.com/site_construct/form_mailer/index.html どんなことでもかまいません。 ご回答いただければ幸いです。 お願いいたします。

  • 空メールを使って、フォームにメルアドを自動入力する方法はありますか?

    メルマガを運営しており、読者の情報を入力してもらっているのですが、アドレス間違いが多く悩んでいます。 空メールを送ってもらい、自動返信メールから登録してもらおうと思っています。(説明下手ですみません。) 空メールを先に送った読者が入力フォームにアクセスすると、自動的に送ったアドレスが入力されているようにしたいと考えています。 フォームのメルアド欄は下のようなボックスに設定しており、フォームはHTMLで作成しております。 <input type="text" name="mail" value="" maxlength="64"> 自動返信メールをクリックするとアドレス入りのフォームを開かせる方法を教えてください。 質問が下手で申し訳ありませんが、回答お願いします。

    • ベストアンサー
    • CGI
  • フリーメールについて

    hotmailやyahoo mailから送られてきたメールで、プロパティなどから、送り主の使っているプロバイダーを特定することはできるのでしょうか?

  • ホームページでの<form action>のタグについて

    場所違いかもしれませんが、どうぞよろし区お願いします。 <form action="メールアドレス" method="post"> という形で、ホームページ内においてメールフォームを作成しているのですが、 私は複数のメールアドレスを持っているため、そのメールアドレス入力部分を <INPUT type="text" name="送付先メールアドレス" value="送信先メールアドレス" size="××"> のような形で表示して、送付先アドレスをホームページ上で手打ちできるようにしたいのですが、どのようにすればよいのか教えてください。 どうぞよろしくお願いします。言葉足らずで申し訳ありません。

  • ホームページ作成で

    こんにちは。 ホームページ作成にあたっての質問です。 メールの自動返信のシステムの作り方に関して情報を探していてアドバイスを頂きたいと思っています。 具体的には (1)お問い合わせフォームのようなものを作ってそこから 送信してもらう方法 (2)携帯電話のように特定のアドレスに送ると確認メールが 送られてくる方法 のどちらかにしようと考えています。 この自動返信システムをどうしても自分で作りたく、いろいろ 調べてみるとzopeが適切なような気がしたのですが、どうなのでしょうか。zopeに限らずこのシステムのサンプルや作り方のアドバイスが掲載されているホームページなどを教えて頂けると大変助かります。 よろしくお願いします。

  • ホームページからのメール

    ホームページのメールフォームで、メールの内容を書き、送信を押すと Microsoft Internet Explorer このフォームは、電子メールを使用して送信されています。 このフォームを送信すると電子メールアドレスが、受信者に公表され、フォームのデータが暗号化されずに送信されます。 この送信は続行できますが、取り消すこともできます。      OK      キャンセル の表示が、でました。OKを押すと メッセージの作成の表示が、出てきて、メールアドレスが、かいてあり、メールの内容は、書いてありませんでした。 このような場合、どうすれば、よいですか。

  • Mailについて

    ホームページを持っているのですが、時折悪戯の書き込みがあります。 そこでお伺いしたいのですが、メールフォームで送信者のアドレスを特定できるタグをご教授頂けませんか? 無料でのメールフォームは必要ありませんので ご存知の方、よろしくお願いいたします。

  • ホームページにメールアドレスをのっけるのだが・・・

    ホームページの制作会社を立ち上げることにしました。 私一人の会社ですが、まず、最初に困ったことがありました。 ホームページ作成請け負いますのホームページをつくりましたが、 そこに私のメールアドレスを乗っけることになるのですが、 フォームは使わない予定です。そのまま、メールアドレスを乗っけると、迷惑宣伝メールが毎日大量にくることが分かりきっています。そこで、画像にメールアドレスを書いて、ホームページに貼っておくことがかんがえられるのですが、 この方法はどうでしょうか?それから、その、メールアドレスは私的な交友関係で使っているメールなので外部の人間に知られたくありません。それとも、メールアドレスを別に設定しておいて、私のメールに転送して届くようにすれば、いいのでしょうか?どうか、ご指南お願い致します。

  • ホームページの質問クリック

    ホームページを見ていて質問をしたいときに質問アドレスをクリックした際に自動的に固定アドレスからのメールフォームになると思います。 フリーメールからの設定にできないのでしょうか? ご教授願います。