• ベストアンサー

空メールを送信するフォームCGI

空メールを受信してアドレス登録をするメルマガシステムを利用しています。 そのシステムにアドレスを登録するためのフォームを作成したいのですが、フリーのCGIで適当なものが無いでしょうか。 フォームにアドレスを入力し送信ボタンをクリックすると、 そのアドレスを送信者として本文なしの空メールが送信される物です。 よろしくお願いいたします。

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

  • ベストアンサー
  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.3

このメールマガジンの登録解除する際、メール本文の一行目に予め設定された「キーワード」を書いて送信してもらうと自動解除される仕組みになっていますので、解除の際の「キーワード送信フォーム」を同時設置することはできないでしょうか。 送信CGI keyword.php: <HTML> <HEAD> <META http-equiv="Refresh" content="15;URL=http://example.com/index.html"> <title>キーワードを送信</title> </HEAD> <BODY> <? // メール送信先を指定します。 $to = "ml@example.com"; // フォームの値を取得します。 if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $$k = $v; } // メール本文を組み立てます。 $title = "subscribe"; $naiyou = "keyword"; if (mail($to, $title, $naiyou, "From:$from")) { echo "メールを送信しました"; } else { echo "メール送信失敗です"; } }?> </BODY> </HTML>

jkp
質問者

お礼

御礼が遅くなり申し訳ございません。 大変助かり有効に利用させていただいております。 本当にありがとうございました。

その他の回答 (2)

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.2

>メール送信後「メールを送信しました」と表示されますが、これを、インデックスページに戻す場合は、どのように記述すると良いでしょうか。 「送信しました」が出た後適当な時間間隔を取って、refresh tagが働くようにすれば良いでしょう。 送信CGI mail.php: <HTML> <HEAD> <META http-equiv="Refresh" content="15;URL=http://example.com/index.html"> <title>空メールを送信</title> </HEAD> <BODY> <? // メール送信先を指定します。 $to = "ml@example.com"; 以下、元と同じ。

jkp
質問者

補足

ご回答有難うございました。 大変上手く行きました。 もし、宜しければもうひとつ教えてください。 このメールマガジンの登録解除する際、メール本文の一行目に予め設定された「キーワード」を書いて 送信してもらうと自動解除される仕組みになっていますので、解除の際の 「キーワード送信フォーム」を同時設置することはできないでしょうか。 よろしくお願いいたします。

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.1

PHPなら、そのまま書けますね。 入力フォーム mail.html <html> <head> <title>空メールを送信</title> </head> <body> <h2>メール送信フォーム</h2> <form method="POST" action="mail.php"> <tr> <td>メールアドレス</td> <td><input type="text" name="from" size="20"></td> </tr> <tr> <td colspan="2"><input type="submit" value="送信"></td> </tr> </table> </form> </body> </html> 送信CGI mail.php: <HTML> <HEAD> <title>空メールを送信</title> </HEAD> <BODY> <? // メール送信先を指定します。 $to = "ml@example.com"; // フォームの値を取得します。 if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $$k = $v; } // メール本文を組み立てます。 $title = "subscribe"; $naiyou = ""; if (mail($to, $title, $naiyou, "From:$from")) { echo "メールを送信しました"; } else { echo "メール送信失敗です"; } }?> </BODY> </HTML>

jkp
質問者

補足

有り難うございます。 空メールの送信上手くいきました。 併せて教えていただきたいのですが、 メール送信後「メールを送信しました」と表示されますが、 これを、インデックスページに戻す場合は、どのように記述すると良いでしょうか。 PHP等のスキルが無く困っております。 よろしくお願いいたします。

関連するQ&A