フォノクラフト株式会社:作業メモや備忘録など

作業メモや備忘録など…

簡単なメール送信スクリプト

without comments

必要なファイル

  • index.php
  • confirm.php
  • complete.php
  • mail.conf.php

一式ダウンロード

ソース

index.php

  • 簡単なバリデートはJSで行う(validator.js / util.js / style.css)
  • Submit/Resetボタンは画像で
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>お問い合わせ|入力</title>

<!-- バリデータ -->
<script type="text/javascript" src=./js/check/util.js" charset="UTF-8"></script> 
<script type="text/javascript" src="./js/check/validator.js" charset="UTF-8"></script> 
<link rel="stylesheet" type="text/css" href="./js/check/style.css" />
<!-- /バリデータ -->

<body>

<form action="confirm.php" method="post" onsubmit="return Validator.submit(this)">

	ご担当者氏名
	<label for="name1">姓 </label><input type="text" name="name1" onblur="Validator.check(this)" />
	<label for="name2" >名 </label><input type="text" name="name2" onblur="Validator.check(this)" />
	
	会員ID
	<input type="text"  size="50" name="userId" onblur="Validator.check(this)">
	
	会社名
	<input type="text"  size="50" name="company" onblur="Validator.check(this)">
	
	部署名
	<input type="text"  size="50" name="section">
	
	メールアドレス
	<input type="text"  size="50" name="mailaddress" onblur="Validator.check(this, 'equal mail', 'mailaddress2')">
	
	メールアドレス(確認)
	<input type="text"  size="50" name="mailaddress2" onblur="Validator.check(this, 'equal mail', 'mailaddress')">
	
	電話番号
	<input type="text" size="50" name="tel" onblur="Validator.check(this)">
	
	お問い合わせ目的
	<input name="inquiry_ttl" type="radio" value="サービスのご利用について" /> サービスのご利用について
	<input name="inquiry_ttl" type="radio" value="当サイトについて" /> 当サイトについて
	<input name="inquiry_ttl" type="radio" value="ご契約・各種手続きについて" onblur="Validator.check(this)" /> ご契約・各種手続きについて
	
	お問い合わせ内容
	<textarea  rows="7" cols="40" name="inquiry" onblur="Validator.check(this)"></textarea>
	
	プライバシーポリシーにご同意の上、お問い合わせください。
	<input name="pp" type="checkbox" value="プライバシーポリシーに同意する" onblur="Validator.check(this)" />&nbsp;プライバシーポリシーに同意する
	<input name="pp" type="hidden" value="プライバシーポリシーに同意しない" />
	
	<input type="reset" class="input_btn" id="btn_reset" name="btn_reset" value="リセット" title="リセット"/>
	<input type="submit" class="input_btn" id="btn_chk" name="btn_chk" value="入力内容を確認" title="入力内容を確認"/>

</form>

</body>
</html>

confirm.php

<?php
$aryName = array(
	'name1',
	'name2',
	'userId',
	'company',
	'section',
	'mailaddress',
	'tel',
	'inquiry_ttl',
	'inquiry',
);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>お問い合わせ|確認</title>
<body>

<form action="complete.php" method="post">
<?php foreach ($aryName as $n) : ?>
<input type="hidden" name="<?php echo $n;?>" value="<?php echo urlencode($_REQUEST[$n]);?>">
<?php endforeach; ?>

ご担当者氏名
<?php echo htmlspecialchars($_REQUEST['name1'].$_REQUEST['name2']);?> 様

会員ID
<?php echo htmlspecialchars($_REQUEST['userId']);?>

会社名<
<?php echo htmlspecialchars($_REQUEST['company']);?>

部署名</th>
<?php echo htmlspecialchars($_REQUEST['section']);?>

メールアドレス<
<a href="mailto:<?php echo htmlspecialchars($_REQUEST['mailaddress']);?>"><?php echo htmlspecialchars($_REQUEST['mailaddress']);?></a>

電話番号
<?php echo htmlspecialchars($_REQUEST['tel']);?>

お問い合わせ内容<
【<?php echo nl2br(htmlspecialchars($_REQUEST['inquiry_ttl']));?>】<br />
<?php echo nl2br(htmlspecialchars($_REQUEST['inquiry']));?>


<input type="reset" class="input_btn" id="btn_fixed" name="btn_fixed" value="修正する" title="修正する" onclick="history.back(); return false;" />
<input type="submit" class="input_btn" id="btn_send" name="btn_send" value="送信する" title="送信する"/>

</form>

</body>
</html>

complete.php

  • 「mailaddress」が無いと送信しない
  • メールテンプレートや送信先のメールアドレスはmail.conf.phpに記述
<?php
include_once './mail.conf.php';
$aryName = array(
	'name1',
	'name2',
	'userId',
	'company',
	'section',
	'mailaddress',
	'tel',
	'inquiry_ttl',
	'inquiry',
);

$to = urldecode($_REQUEST['mailaddress']); 
if ($to !== '') {
	foreach ($aryName as $n) {
		$search = '%%'.$n.'%%';
		$replace = urldecode($_REQUEST[$n]);
		$mail_body = str_replace($search, $replace, $mail_body);
	}
	my_send_mail($to, $mail_body);

}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>お問い合わせ|完了</title>
<body>

お問合せ頂きありがとうございます。<br />
後ほど、担当者よりご連絡いたします。

</body>
</html>

mail.conf.php

  • From / Replay / BCC を設定します
  • メールテンプレートを編集します
<?php
mb_language('ja');

$mail_subject = '【○○○○】お問い合わせを受け付けました';

$mail_bcc  = '○○○○@○○○○.co.jp';
$mail_from = '○○○○@○○○○.co.jp';
$mail_reply_to = '○○○○@○○○○.co.jp';

$header  = "From: $mail_from\n";
$header .= "Reply-To: $mail_reply_to\n";
$header .= "Bcc: $mail_bcc\n";

$mail_body = "
%%name1%% %%name2%% 様

この度は○○○○にお問い合わせいただき、ありがとうございます。
本メールはご登録の受付により自動配信されております。
以下よりお問い合わせ内容のご確認をお願い致します。


【お問い合わせ内容】
━━━━━━━━━━━━━━━━━━━━━━━━━━
 氏名:%%name1%% %%name2%% 様
 会員ID:%%userId%%
 会社名:%%company%%
 部署名:%%section%%
 メールアドレス: %%mailaddress%%
 電話番号: %%tel%%

 ご相談内容:
【%%inquiry_ttl%%】
%%inquiry%%   
━━━━━━━━━━━━━━━━━━━━━━━━━━

いただきましたお問い合わせにつきましては、
2営業日以内に担当者より一度ご連絡をさせていただきます。

お問い合わせ内容について、不備などありましたら、
以下の連絡先までお問い合わせください。

お問い合わせありがとうございました。


━━━━━━━━━━━━━━━━━━━━━━━━━━
株式会社○○○○ ○○○○@○○○○.co.jp
〒000-0000  東京都○○○○区○○○○1-1-1
■○○○○に関するお問い合わせ先
TEL:03-○○○○-○○○○(9:00-18:00/土日祝日を除く)
━━━━━━━━━━━━━━━━━━━━━━━━━━

";

function my_send_mail($mail_to, $mail_body) {
	global $mail_subject, $header;

	//$mail_body = mb_convert_encoding($mail_body, 'JIS', 'UTF-8');
	//$mail_subject = mb_convert_encoding($mail_subject, 'JIS', 'UTF-8');
	mb_internal_encoding("UTF-8");
	$r = mb_send_mail($mail_to, $mail_subject, $mail_body, $header);
	
	return $r;
}

//$hgoe = my_send_mail($mail_to, $mail_body);
//var_dump($hgoe);
?>