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. MT4向けナンピンマーチンEA「PINMA FREE」を無料公開(ベースロット0.01固定) #自動売買 #FX (3 PV)
  2. 2022年5月12日以降のトレンド予想 FRBの金融引き締め(利上げ、QT)で株、ゴールド、仮想通貨は下落トレンドが鮮明に (3 PV)
  3. MT4向けスキャルEA「Surfing Forex(サーフィンフォレックス)」Free版(0.01ロット固定、無料、使用期限無し) #海外FX (2 PV)
  4. 掲示板CGI ThreadPlus 1.0 のリリース (2 PV)
  5. MT4向けスキャルEA「TheWorld(ザワールド)」Free版(0.01ロット固定、無料、使用期限無し) (2 PV)
  6. MT4向けヘッジ(両建て)ツール(EA)「STOPPER FREE」を無料公開 #自動売買 #FX (2 PV)
  7. Google News (グーグルニュース)日本版 (2 PV)
  8. MT4向けブレイクアウトEA「NEKONEKO(ネコネコ)」Free版(0.01ロット固定、無料、使用期限無し) (2 PV)
  9. [将棋]ユーチューバーのクロノさんが将棋ウォーズ運営からアカウント停止の警告を受ける #ソフト指し #複垢 #アカBAN (1 PV)
  10. [将棋]将棋実況ちゃんねる【アヒルマン】 アヒル囲いなら一か月で将棋ウォーズ初段になれるかも #おすすめの将棋実況チャンネル #アヒル囲い #マイナー戦法 (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (416 PV)
  2. 人気ナンピンマーチンEA「NPNM_v3」向けサンプルセットファイル (92 PV)
  3. 掲示板CGI ThreadPlus 1.0 のリリース (55 PV)
  4. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (43 PV)
  5. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (39 PV)
  6. Google News (グーグルニュース)日本版 (29 PV)
  7. MT4向けナンピンマーチンEA「PINMA FREE」を無料公開(ベースロット0.01固定) #自動売買 #FX (24 PV)
  8. 無料の決済支援ツール「PositionKeeper」を使って楽々半自動スキャルピング #MT4 #MT5 (23 PV)
  9. [将棋]ユーチューバーのクロノさんが将棋ウォーズ運営からアカウント停止の警告を受ける #ソフト指し #複垢 #アカBAN (22 PV)
  10. 完全無料のMT4向けナンピンEA「Nanpin K(ナンピンケイ)」をバージョンアップ(Ver 2.03) (19 PV)

アクセス統計

ディレクトリ

関連サイト