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. FC2動画やYouTubeなどから無料動画(映画やドラマ、アニメ、音楽など)を探す方法 (4 PV)
  2. [将棋]NHK杯2回戦第1局は増田康宏四段が雁木っぽい戦型で深浦康市九段の矢倉を粉砕 (4 PV)
  3. Windows 10の大型アップデート「Windows 10 Creators Update」が配信開始 (4 PV)
  4. 個人向けのRSS広告配信サービス (4 PV)
  5. Google(グーグル)検索 日本版 - ウェブ、画像の検索 (4 PV)
  6. Google 日本語入力がオープンソースに (4 PV)
  7. 嘘でしょ?忍者は実在した!「秘伝 伊賀流忍術の奥義」が動画で公開 (4 PV)
  8. 有名個人投資家「cis(シス)」さんが、データ改ざん発覚で株価が急落した東レ株を大量に買ったもよう (4 PV)
  9. ネットイナゴとはてなブックマーク (3 PV)
  10. 番号ポータビリティー(番号継続)制 (3 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (65 PV)
  2. 2NN 2ちゃんねるニュース速報+ナビ (52 PV)
  3. 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (37 PV)
  4. Google News (グーグルニュース)日本版 (22 PV)
  5. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (21 PV)
  6. [PR]noteで販売している自作EAの一覧 (20 PV)
  7. 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (19 PV)
  8. MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (16 PV)
  9. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (16 PV)
  10. 究極の爆益ゴールドナンピンマーチンEA「Extreme(エクストリーム)」 MT4向け (16 PV)

アクセス統計

ディレクトリ

関連サイト