PHPメールフォームのサンプルスクリプト

PHPの開発環境でプログラムからメールを送信できるかチェックするために作成した、ごく簡単なメールフォームのサンプルスクリプト(プログラム)です。

mailmform.phpを実行すると入力フォームが表示され。送信ボタンを押す(クリック)すると入力した内容がメール送信されます。

<?php
//------------------------------------------------------------------------------
//    mailform.php - sample mailform php script
//------------------------------------------------------------------------------

mb_language("Japanese");
mb_internal_encoding("UTF-8");

define("MAILTO", "*******@****.***");

$proc = isset($_POST['proc']) ? $_POST['proc'] : '';
//echo $proc; // for debug
if ($proc == 'send') {
    _send();
}
else {
    _input();
}

// 初期表示
function _input() {
    $formdata = array();
    $formdata['subject'] = '';
    $formdata['name'] = '';
    $formdata['from'] = '';
    $formdata['body'] = '';
    _input_form($formdata, '');
}

// 入力フォーム表示
function _input_form($formdata, $message) {

    // XSS対策
    $formdata['subject'] = htmlspecialchars($formdata['subject'], ENT_QUOTES);
    $formdata['name'] = htmlspecialchars($formdata['name'], ENT_QUOTES);
    $formdata['from'] = htmlspecialchars($formdata['from'], ENT_QUOTES);
    $formdata['body'] = htmlspecialchars($formdata['body'], ENT_QUOTES);

echo <<<EOF
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>サンプルメールフォーム</title>
</head>
<body>
<h2>サンプルメールフォーム</h2>
<p>$message</p>
<form action="mailform.php" method="post">
<input type="hidden" name="proc" value="send">
件名:<br />
<input type="text" name="subject" size="50" value="${formdata['subject']}" /><br />
名前:<br />
<input type="text" name="name" size="50" value="${formdata['name']}" /><br />
メールアドレス:<br />
<input type="text" name="from" size="50" value="${formdata['from']}" /><br />
本文:<br />
<textarea name="body" cols="50" rows="10">${formdata['body']}</textarea><br />
<br />
<input type="submit" value="送信" />
</form>
</body>
</html>
EOF;

    exit();
}

// メール送信
function _send() {

    // パラメータ取得
    $formdata = array();
    $formdata['subject'] = isset($_POST['subject']) ? $_POST['subject'] : '';
    $formdata['name'] = isset($_POST['name']) ? $_POST['name'] : '';
    $formdata['from'] = isset($_POST['from']) ? $_POST['from'] : '';
    $formdata['body'] = isset($_POST['body']) ? $_POST['body'] : '';

    // 入力チェック
    if ($formdata['subject'] == '') {
        _input_form($formdata, '件名を入力してください');
    }
    if ($formdata['name'] == '') {
        _input_form($formdata, '名前を入力してください');
    }
    if ($formdata['from'] == '') {
        _input_form($formdata, 'メールアドレスを入力してください');
    }
    else {
        if (!preg_match('/^[-+\\w]+(\\.[-+\\w]+)*@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]{2,6}$/i', $formdata['from'])) {
            _input_form($formdata, '正しいメールアドレスを入力してください');
        }
    }
    if ($formdata['body'] == '') {
        _input_form($formdata, '本文を入力してください');
    }

    // 送信
    $header = "From: " . mb_encode_mimeheader($formdata['name']) . ' <' . $formdata['from'. '>';
    $result = mb_send_mail(MAILTO$formdata['subject'], $formdata['body'], $header);
    if ($result{
        _input_form($formdata'メールを送信しました');
    }
    else {
        _input_form($formdata'メール送信に失敗しました');
    }
}

?>
[2216] Posted by kagahiro at 2012/06/13 13:04:06
オープン | 0 point | Link (5) | Trackback (0) | Comment (0)

キーワード

サンプルプログラム PHP メールフォーム 

ジャパンのホームページ


PHPメールフォームのサンプルスクリプト 関連リンク

[Perl]メールフォームCGIの作り方
オンラインショップの商品が注文された際に顧客に注文内容の確認メールを送信したり、掲示板にコメントが書き込まれた際に管理人宛てに通知メールを送信したりするには、フォームで入力された項目の内容をCGIからメー...
Sendmail(センドメール)
sendmail(センドメール)とは、Eric Allman氏によって開発された電子メールサーバソフトウェア(MTA)のことで、ユーザが送信したメールを受け取って、他のサーバと連携してバケツリレー式に目的地...
月額125円からの「さくらのレンタルサーバ ライト」がPHPに対応
さくらインターネットの共用レンタルサーバーサービス「さくらのレンタルサーバ」の、月額125円から利用できるエントリープラン「ライト」が動的なウェブページを実現するスクリプト言語「PHP」に対応した。これによ...
PHPからXMLを出力するサンプルコード
PHPでXMLを扱う場合、SimpleXMLやDOMを使うというのが一般的なようですが、今回はそれらは使わずに単に出力したいXML形式の文字列を生成してそれ出力するというサンプルコードです。サンプルコードの処理内容は、MyS...
CustomForm
CustomFormは、WEB上で自由にアンケートフォームを作成することが出来る無料サービス。アンケートフォームの作成にHTMLやCGIの知識は要らない。作成したアンケートは自分のブログにリンクを張ったり、メールで友達に...

PHPメールフォームのサンプルスクリプト トラックバック

トラックバックURL :


PHPメールフォームのサンプルスクリプトへのコメント


詳細の入力フィールドを表示する

おすすめ  (チェックしてコメントすると最新情報に掲載)
コメント :

< 前の投稿      次の投稿 >

アクセスランキング

今日のアクセスランキング TOP 10

  1. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (5 PV)
  2. C# (2 PV)
  3. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2 PV)
  4. 動画共有サイト - ニコニコ動画 (2 PV)
  5. シストレ(システムトレード) - コンピューターシステムで株や通貨を自動売買 (2 PV)
  6. アボガドのオリーブオイル漬け (2 PV)
  7. Windows Vista Capable PC (2 PV)
  8. ハッピーハッキングキーボード(HHKB、Happy Hacking Keyboard) (2 PV)
  9. ブログを利用したECサイト向け口コミ広告サービス (2 PV)
  10. jig.jp、「jigベンチマーク 2.0.0」をリリース (2 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (163 PV)
  2. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (130 PV)
  3. 2NN 2ちゃんねるニュース速報+ナビ (79 PV)
  4. FC2まとめ (38 PV)
  5. 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (35 PV)
  6. MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (32 PV)
  7. 2ちゃんねる(2ch) (30 PV)
  8. 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (29 PV)
  9. 爆益を狙うハイリスクハイリターンのナンピンマーチンEA「Hyper Dollar MT5」 (27 PV)
  10. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (24 PV)

アクセス統計

ディレクトリ

関連サイト