// mailform.php release 3 Copyright 2006-2008 TAKEDA Hiroyuki // http://captcha.jp/mailform/ // [基本仕様] // // PHPで書かれています // UTF-8で書かれています // http://captcha.jpのCAPTCHAサービスに対応しています // // [設置方法] // // PHPが実行可能なサーバで、以下のファイルを設置します。 // 括弧内の数字はパーミッションの値です。 // // /public_html/(任意のディレクトリ) // |-- mailform.php (644 or 604) // |-- des_64.php(644 or 604) // // mailform.php // スクリプト本体です。 // // des_64.php // DES暗号化ライブラリです。 // // [履歴] // 2008-11-04 release 3 64bit OSで動くPHPに対応 // 2006-10-10 release 2 DES暗号化、captcha4.phpを使うように変更 // 2006-07-06 release 1 作った // // --- 設定部 ------------------------------------------------------------------ // --- 必ず書き換える項目 ------------------------------------------------------ // --- メールの送信先 ---------------------------------------------------------- $mail_to = 'laut@studio-laut.com'; // --- 必要に応じて書き換える項目 ---------------------------------------------- // 送信完了ページを別ページにリダイレクトする場合はURLを書いてください。 // このスクリプトで送信完了ページを出力する場合は空欄です(デフォルト 空欄) $redirect = ''; // --- CAPTCHA関連 ------------------------------------------------------------ // captcha.jpによるロボットスパム防止を TRUE:使う FALSE:使わない $captcha = TRUE; // captcha.jpのアカウントID $id = '4741'; // DESの秘密鍵 $key = '496d5c84d70a1'; // captchaの桁数 $captcha_length = 4; // --- プログラム部 ------------------------------------------------------------ // --- 初期化 ------------------------------------------------------------------ $release = '3'; $footer = '
'; $base = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $m = $n = 0; // --- captcha.phpに渡す文字列をランダムに生成し、DESで暗号化してURLエンコード - if ( $captcha ) { require( 'des_64.php' ); $auth = ''; $len = strlen( $base ) - 1; for ( $n = 0; $n < $captcha_length; $n ++ ) $auth .= substr( $base, rand( 0, $len ), 1 ); $auth = urlencode( encrypt( $key, $auth ) ); } // --- 送信 -------------------------------------------------------------------- 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( decrypt( $key, urldecode( $_POST['auth'] ) ) ); 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'] . ">"; mail( $mail_to, $_POST['subject'], $_POST['body'], $headers, $parameter ); // --- Ccも送信 if ( $_POST['copy'] != '' ) mail( $_POST['email'], $_POST['subject'], $_POST['body'], $headers, $parameter ); // --- 送信完了ページ ------------------------------------------------------ if ( $redirect != '' ) { header( "Location: $redirect" ); exit; } else { ?>