BreathTake/ホームページ作成の小技・PHPの小技篇

*
ホームページ作成の小技タイトル・PHPの小技篇・イメージ写真
ホームページ作成の小技TOP>> PHPの小技篇>> メール送信プログラム
メール送信プログラム

メール送信のプログラムソ−ス

<?php
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■PHP-メール送信プログラム■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

?>

<?php
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
## 初回訪問では無い場合 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

if ($_POST['POST_mode'] == "メール送信") {

##********************************************************************************
##stripslashesとtrim
//stripslashes = 送信データに自動的に付けられた「\」を除去します
//trim = 目に見えない文字を消去します
##********************************************************************************

function _ss($_val) {
  if(get_magic_quotes_gpc()){
    $_val = stripslashes($_val);
  }
  $_val = trim($_val);
  return($_val);
}

##********************************************************************************
##送信されたデータを取得します
##********************************************************************************

//================================================================================
//お名前
$POST_name = _ss($_POST["POST_name"]);
if( $POST_name == "" ){
  $POST_caption01 = "■お名前が入力されていません<br>";
  $POST_param = "no";
}
//================================================================================
//郵便番号

$POST_zip = _ss($_POST["POST_zip"]);
if( $POST_zip !="" ){
  if(preg_match("/^[!-~]+$/", $POST_zip)){
  } else {
    $POST_caption02 = "■郵便番号に全角が含まれています<br />";
    $POST_param="no";
  }
}
//================================================================================
//住所

$POST_address = _ss($_POST["POST_address"]);
//================================================================================
//電話番号

$POST_tel = _ss($_POST["POST_tel"]);
if( $POST_tel !="" ){
  if(preg_match("/^[!-~]+$/", $POST_tel)){
  } else {
    $POST_caption03 = "■電話番号に全角が含まれています<br />";
    $POST_param="no";
  }
}
//================================================================================
//メールアドレス

$POST_email = _ss($_POST["POST_email"]);
if( $POST_email =="" ){
  $POST_caption04 = "■メールアドレスが入力されていません<br />";
  $POST_param="no";
} else {
  if(preg_match("/^[!-~]+$/", $POST_email)){
    if(strstr($POST_email,"@") == false){
      $POST_caption04 = "■メールアドレスに@がありません<br />";
      $POST_param="no";
    }
  } else {
    $POST_caption04 = "■メールアドレスに全角が含まれています<br />";
    $POST_param="no";
  }
}
//================================================================================
//お問い合わせ項目

$POST_type = _ss($_POST["POST_type"]);
if( $POST_type == "" ){
  $POST_caption05 = "■お問い合わせ項目が記入されておりません<br>";
  $POST_param = "no";
}
//================================================================================
//内容

$POST_contents = _ss($_POST["POST_contents"]);
if( $POST_contents == "" ){
  $POST_caption06 = "■内容が記入されておりません<br>";
  $POST_param = "no";
}
//================================================================================
##エラーメッセージの設定

$POST_caption = $POST_caption01 . $POST_caption02 . $POST_caption03 . $POST_caption04 . $POST_caption05. $POST_caption06;
##エラーメッセージが無い場合はパラメータを「enter」にして送信可とする
if ( $POST_caption == "" ) {
  $POST_param="enter";
} else {
  $POST_param="no";
}

if( $POST_param == "enter") {
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
## パラメータが「enter」の場合はメール送信処理を開始
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

##▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
## 書き換え部分(送信先によって書き換え必要)開始 ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
##▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

##********************************************************************************
##送信メールの本文文頭に追加するキャプション
##********************************************************************************

$header_caption = "\n────────────────────" . "\nこのメールは自動送信でお送りしています。" . "\n────────────────────" . "\n以下の通り、" . "\n会社名" . "\nより送信がありました。" . "\n▼送信内容▼▼▼▼▼▼▼▼▼▼▼▼▼▼";

##********************************************************************************
##送信メールの本文文末に追加するキャプション
##********************************************************************************

$footer_caption = "\n────────────────────" . "\n送信内容に心あたりの無い方は、ご面倒でも、" . "\n弊社まで、ご連絡いただければ幸いです。" . "\n────────────────────" . "\n会社名" . "\n〒郵便番号" . "\n住所" . "\nTEL : 電話番号" . "\n────────────────────" . "\n以上";

##********************************************************************************
##件名
##********************************************************************************

$subject = "件名(自動返信)";

##********************************************************************************
##送信先
##********************************************************************************
##差出人に返信

$to01 = $POST_email;
##サイト管理者に送信
$to02 = 'XXX@XX-XXXX.com';

##********************************************************************************
##メール送信本文の組み立て
##********************************************************************************

$contents="■お名前 : " . $POST_name . "\n■郵便番号 : " . $POST_zip . "\n■ご住所 :\n" . $POST_address . "\n■お電話番号 : " . $POST_tel . "\n■メールアドレス : " . $POST_email . "\n■お問い合わせ項目 : ". $POST_type . "\n■内容 : ". $POST_contents;

##▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
## 書き換え部分(送信先によって書き換え必要)終了 ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
##▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

##********************************************************************************
##本文部分の組み立て
##********************************************************************************

$message = $header_caption . "\n" . $contents . "\n" . $footer_caption;

##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
## 文字化け対策 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

##********************************************************************************
##件名の文字化け対策
##********************************************************************************

if ($encoding != "JIS") {
  $subject = mb_convert_encoding($subject, "JIS", $encoding);
}
$subject = base64_encode($subject);
$subject = '=?ISO-2022-JP?B?' . $subject . '?=';

##********************************************************************************
//日本語の選択(2バイトコードへの変換)
##********************************************************************************

mb_language("Japanese");
mb_internal_encoding("EUC-JP");
$header = "Content-Type: text/plain;charset=iso-2022-jp";
//送信元
$from = mb_encode_mimeheader(mb_convert_encoding($from, "JIS", "EUC-JP"))."<takayama@mc-buzz.com>";
//内容
$message = mb_convert_encoding($message, "JIS", "EUC-JP");

##********************************************************************************
##日本語の選択
##********************************************************************************

mb_language("Japanese");

##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

}
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

} else {
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##初回訪問時のパラメータ指定■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

$POST_param="first";

}

?>

 

<?php
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■メール送信のアルゴリズム■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

if( $POST_param == "enter"){

if (mail($to01,$subject,$message,"From:".$from,$header)) {
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##差出人へのメール送信成功時のキャプション設定
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

?>
<div style="text-align:center;width:100%;">
<div style="text-align:left;width:420px;margin-left:auto;margin-right:auto;">
<b><?=$POST_name ?>様</b>
<br />
■このたびは、
<br />
お問い合わせいただきまして誠にありがとうございます。
<br />
お客様からのお問い合わせは正常に送信されました。
<br />
数日、経っても返事が届かない場合、送信エラーの可能性があります。
<br />
その際は恐れ入りますが、再度送信していただければと存じます。
</div>
</div>
<?PHP
} else {
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##差出人へのメール送信失敗時のキャプション設定
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

?>
<div style="text-align:center;width:100%;">
<div style="text-align:left;width:420px;margin-left:auto;margin-right:auto;">
■お客様への「自動返信メール」の送信に失敗しました。
<br />
恐れ入りますが、再度送信していただければと存じます。
</div>
</div>
<?PHP
}
?>

<?PHP
if (mail($to02,$subject,$message,"From:".$from,$header)) {
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##送信先へのメール送信成功時のキャプション設定
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

?>
<?PHP
} else {
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##送信先へのメール送信失敗時のキャプション設定
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

?>
<div style="text-align:center;width:100%;">
<div style="text-align:left;width:420px;margin-left:auto;margin-right:auto;">
■弊社へのメール送信に失敗しました。
<br />
恐れ入りますが、再度送信していただければと存じます。
</div>
</div>
<?PHP
}
?>

<?PHP
} else {
?>

<!-- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■-->
<form method ="POST" action="<?=$_SERVER["PHP_SELF"]?>">
<table border="0" cellpadding="0" cellspacing="0" width="420px" bordercolor="#c0c0c0">
<!-- ===================================================================== -->
<tr>
<td valign="top" align="left" colspan="2">
■下記のフォームに必要事項を入力の上、送信してください。
<br />
(*は必須入力項目です)
<input type="hidden" name="POST_return" value="POST_return">
</td>
</tr>
<!-- ===================================================================== -->
<?php
if( $POST_param != "first"){
?>
<tr>
<td valign="top" align="left" colspan="2" style="line-height:1;">
<b><font color="#00800"><?= $POST_caption ?></font></b>
</td>
</tr>
<?php
}
?>
<!-- ===================================================================== -->
<tr>
<td valign="top" align="left" width="120px">
<b>お名前</b>(*)
</td>
<td valign="top" align="left">
<input type="text" name="POST_name" value="<?= $POST_name ?>" class="zenkaku" size="40">
</td>
</tr>
<!-- ===================================================================== -->
<tr>
<td valign="top" align="left">
<b>郵便番号</b>
</td>
<td valign="top" align="left">
〒<input type="text" name="POST_zip" value="<?= $POST_zip ?>" class="hankaku" size="25"> (〒000-0000)
</td>
</tr>
<!-- ===================================================================== -->
<tr>
<td valign="top" align="left">
<b>住所</b>
</td>
<td valign="top" align="left">
<input type="text" name="POST_address" value="<?= $POST_address ?>" class="zenkaku" size="50">
</td>
</tr>
<!-- ===================================================================== -->
<tr>
<td valign="top" align="left">
<b>電話番号</b>
</td>
<td valign="top" align="left">
<input type="text" name="POST_tel" value="<?= $POST_tel ?>" class="hankaku" size="30"> (000-000-0000)
</td>
</tr>
<!-- ===================================================================== -->
<tr>
<td valign="top" align="left">
<b>メールアドレス</b>(*)
</td>
<td valign="top" align="left">
<input type="text" name="POST_email" value="<?= $POST_email ?>" class="hankaku" size="40">
</td>
</tr>
<!-- ===================================================================== -->
<tr>
<td valign="top" align="left">
<b>お問い合わせ<br />項目</b>
</td>
<td valign="top" align="left">
<?php
##ラジオボタンの「name」パラメータ
$POST_radioname = "POST_type";
##ラジオボタンの「name」パラメータの送信値
$SEND_radioname = $POST_type;
##ラジオボタンのコンテンツ
$cont01 = "コンテンツ壱";
$cont02 = "コンテンツ弐";
$cont03 = "コンテンツ参";
$cont04 = "その他";
?>
<input type="radio" name="<?=$POST_radioname?>" value="<?=$cont01?>" <?php if (isset ($cont01) && $cont01 == $SEND_radioname ) { print " checked"; }?>><?=$cont01?>
<br />
<input type="radio" name="<?=$POST_radioname?>" value="<?=$cont02?>" <?php if (isset ($cont02) && $cont02 == $SEND_radioname ) { print " checked"; }?>><?=$cont02?>
<br />
<input type="radio" name="<?=$POST_radioname?>" value="<?=$cont03?>" <?php if (isset ($cont03) && $cont03 == $SEND_radioname ) { print " checked"; }?>><?=$cont03?>
<br />
<input type="radio" name="<?=$POST_radioname?>" value="<?=$cont04?>" <?php if (isset ($cont04) && $cont04 == $SEND_radioname ) { print " checked"; }?>><?=$cont04?>
</td>
</tr>
<!-- ===================================================================== -->
<tr>
<td valign="top" align="left" colspan="2">
<b>内容</b>
</td>
</tr>
<!-- ===================================================================== -->
<tr>
<td valign="top" align="left" colspan="2">
<textarea rows="10" cols="52" name="POST_contents"><?= $POST_contents ?></textarea>
</td>
</tr>
<!-- ===================================================================== -->
<tr>
<td valign="top" align="right" colspan="2">
<input type="submit" value="メール送信" name = "POST_mode"/>  <input type="reset" value="リセット" />
</td>
</tr>
<!-- ===================================================================== -->
</table>
</form>
<!-- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■-->

<?PHP
}
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
##■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

?>
Copyright © 2011 BreathTake All Rights Reserved