// mailform.php release 2 Copyright 2006 TAKEDA Hiroyuki // http://atashi.net/inu/ja/software/mailform.html // [基本仕様] // // PHPで書かれています // UTF-8で書かれています // METHOD="POST"専用です // http://captcha.jpのCAPTCHAサービスに対応しています // // [設置方法] // // PHPが実行可能なサーバで、以下のファイルを設置します。 // 括弧内の数字はパーミッションの値です。 // // /public_html/(任意のディレクトリ) // |-- mailform.php (644 or 604) // |-- des.php(644 or 604) // // mailform.php // スクリプト本体です。 // des.php // DES暗号化ライブラリです。 // // [履歴] // 2006-10-10 release 2 DES暗号化、captcha4.phpを使うように変更 // 2006-07-06 release 1 作った // // --- 設定部 ------------------------------------------------------------------ // --- 必ず書き換える項目 ------------------------------------------------------ // --- メールの送信先 ---------------------------------------------------------- $mail_to = 'yolk@lay-el.net'; // --- 必要に応じて書き換える項目 ---------------------------------------------- // 送信完了ページを別ページにリダイレクトする場合はURLを書いてください。 // このスクリプトで送信完了ページを出力する場合は空欄です(デフォルト 空欄) $redirect = ''; // --- CAPTCHA関連 ------------------------------------------------------------ // captcha.jpによるロボットスパム防止を TRUE:使う FALSE:使わない $captcha = TRUE; // DESの秘密鍵 //$key = '462afb9109906'; $key = ''; // captcha.jpのアカウントID //$id = '2533'; $id = ''; // captchaの桁数 $captcha_length = 4; // --- プログラム部 ------------------------------------------------------------ // --- 初期化 ------------------------------------------------------------------ $release = '2'; $base = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $m = $n = 0; // --- captcha.phpに渡す文字列をランダムに生成し、DESで暗号化してURLエンコード - if ( $captcha ) { require( 'des.php' ); $auth = ''; $len = strlen( $base ) - 1; for ( $n = 0; $n < $captcha_length; $n ++ ) $auth .= substr( $base, rand( 0, $len ), 1 ); $auth = urlencode( des( $key, $auth, 1, 0, null ) ); } // --- 送信 -------------------------------------------------------------------- if ( $_POST['act'] == 'send' ) { // --- エラー処理 ---------------------------------------------------------- if ( $_POST['name'] == '' ) error( '名前が入力されていません' ); if ( $_POST['email'] == '' ) error( 'メールアドレスが入力されていません' ); if ( $_POST['subject'] == '' ) error( '件名が入力されていません' ); //if ( $_POST['body'] == '' ) error( '本文が入力されていません' ); // --- CAPTCHA ------------------------------------------------------------- if ( $captcha ) { $_POST['auth'] = trim( des( $key, urldecode( $_POST['auth'] ), 0, 0, null ) ); if ( strtoupper( $_POST['charenge'] ) != strtoupper( $_POST['auth'] ) ) error( 'CAPTCHAテストに失敗しました' ); } // --- 送信 ---------------------------------------------------------------- $_POST['name'] = mb_convert_encoding( $_POST['name'], 'JIS', 'UTF-8' ); $_POST['subject'] = mb_convert_encoding( $_POST['subject'], 'JIS', 'UTF-8' ); $_POST['body'] = mb_convert_encoding( $_POST['body'], 'JIS', 'UTF-8' ); $_POST['subject'] = '=?iso-2022-jp?B?' . base64_encode( $_POST['subject'] ) . '?='; $headers = 'From: =?iso-2022-jp?B?' . base64_encode( $_POST['name'] ) . '?= <' . $_POST['email'] . ">\r\n"; mail( $mail_to, $_POST['subject'], $_POST['body'], $headers, $parameter ); if ( $_POST['copy'] != '' ) mail( $mail_to, $_POST['subject'], $_POST['body'], $headers, $parameter ); // --- 送信完了ページ ------------------------------------------------------ if ( $redirect != '' ) { header( "Location: $redirect" ); exit; } else { ?>
この画面は閉じてください.
exit; } } // --- エラーメッセージ出力 ---------------------------------------------------- function error( $message ) { ?>