电子邮件内部服务器错误[尽管已发送和接收邮件]

时间:2019-04-11 02:16:15

标签: php html email

因为这个问题被问了很多
我检查了堆栈中所有可能的解决方案,但没有一个与我的相似。
每当我点击send按钮时,就会引发错误Internal Server Error
Screenshot
但奇怪的是,我正在收到电子邮件。
我尝试通过表单发送服务器测试电子邮件,并且可以验证电子邮件是否已发送和接收。
但是为什么它显示Internal server error而不是Sent mail confirmation屏幕。
网站已经在here上发布了
格式为here
以下是表单

的html和php代码

<?php header("Content-Type:text/html;charset=UTF-8"); ?>
<?php

ini_set("display_errors", 1);
error_reporting(E_ALL);


//==========================================================
//  メールフォームシステム ver.0.96β
//  eWeb http://www.eweb-design.com/
//==========================================================

// このファイルの名前
$script ="sendmail01.php";

// メールを送信するアドレス(複数指定する場合は「,」で区切る)
$to = "info@transit-emenu.com";

// 送信されるメールのタイトル
$sbj = "【 e-menu 】お問い合わせ";

// 送信確認画面の表示(する=1, しない=0)
$chmail = 1;

// 送信後に自動的にジャンプする(する=1, しない=0)
// 0にすると、送信終了画面が表示されます。
$jpage = 0;

// 送信後にジャンプするページ(送信後にジャンプする場合)
$next = "form_submit.html";

// 差出人は、送信者のメールアドレスにする(する=1, しない=0)
// する場合は、メール入力欄のname属性を「email」にしてください。
$from_add = 1;

// 差出人に送信内容確認メールを送る(送る=1, 送らない=0)
// 送る場合は、メール入力欄のname属性を「email」にしてください。
$remail = 1;

// 差出人に送信確認メールを送る場合のメールのタイトル
$resbj = "お問い合わせありがとうございます";

// 必須入力項目を設定する(する=1, しない=0)
$esse = 1;

// 必須入力項目(入力フォームで指定したname)
$eles = array('貴社名','ご担当者名','フリガナ','郵便番号','住所','電話番号','email');


//--------------------------------------------------------------------
// 以上で基本的な設定は終了です。
// 以下の変更は自己責任でお願いします。(行数はデフォルト時)
// 未入力画面のレイアウト → 88行目周辺
// 送信メールのレイアウト → 103行目周辺
// 差出人への送信確認メールのレイアウト → 128行目周辺
// 送信確認画面のレイアウト → 163行目周辺
// 送信終了画面のレイアウト → 194行目周辺
// 送信確認画面や終了画面のヘッダとフッタ → 209行目周辺
//--------------------------------------------------------------------

date_default_timezone_set('Asia/Tokyo');

$sendm = 0;
foreach($_POST as $key=>$var) {
  if($var == "eweb_submit") $sendm = 1;
}

// 文字の置き換え
$string_from = "\";
$string_to = "ー";

// 未入力項目のチェック
if($esse == 1) {
  $flag = 0;
  $length = count($eles) - 1;
  foreach($_POST as $key=>$var) {
    $key = strtr($key, $string_from, $string_to);
    if($var == "eweb_submit") ;
    else {
      for($i=0; $i<=$length; $i++) {
        if($key == $eles[$i] && empty($var)) {
          $errm .= "<p class='inquiry-caution03'>「".$key."」は必須入力項目です。</p>\n";
          $flag = 1;
        }
      }
    }
  }
  foreach($_POST as $key=>$var) {
    $key = strtr($key, $string_from, $string_to);
    for($i=0; $i<=$length; $i++) {
      if($key == $eles[$i]) {
        $eles[$i] = "eweb_ok";
      }
    }
  }
  for($i=0; $i<=$length; $i++) {
    if($eles[$i] != "eweb_ok") {
      $errm .= "<p class='inquiry-caution03'>「".$eles[$i]."」が未入力です。</p>\n";
      $eles[$i] = "eweb_ok";
      $flag = 1;
    }
  }
  if($flag == 1){
    htmlHeader();
?>


<!--- 未入力があった時の画面 --- 開始 --------------------->

    <h2 class="sub-hl">お問い合わせ内容確認</h2>
    <div class="inquiry-section01-inner">
      <p class="inquiry-caution03">入力エラー</p>
      <?php echo $errm; ?>
      <div class="row">
        <div class="col-sm-12 text-center btn-back">
          <button type="button" onclick="history.back()" class="btn btn-primary">入力画面に戻る</button>
        </div>
      </div>
    </div>

<!--- 終了 --->


<?php 
    htmlFooter();
    exit(0);
  }
}

//--- メールのレイアウトの編集 --- 開始 ------------------->

$body="「".$sbj."」からの発信です。下記内容でお問い合わせをいただきました。\n\n";
$body.="-------------------------------------------------\n\n";
foreach($_POST as $key=>$var) {
  $key = strtr($key, $string_from, $string_to);
  if(get_magic_quotes_gpc()) $var = stripslashes($var);
  if($var == "eweb_submit") ;
  else $body.="[".$key."] ".$var."\n";
}
$body.="\n-------------------------------------------------\n\n";
$body.="送信日時:".date( "Y/m/d (D) H:i:s", time() )."\n";
$body.="ホスト名:".getHostByAddr(getenv('REMOTE_ADDR'))."\n\n";

//--- 終了 --->


if($remail == 1) {
//--- 差出人への送信確認メールのレイアウトの編集 --- 開始 ->

$rebody="お問い合わせありがとうございました。\n\n";
$rebody.="以下の内容が送信されました。\n\n";
$rebody.="内容確認後、3営業日以内にご連絡させていただきます。\n\n";
$rebody.="------------------------------------------------------------------------------------\n\n";
foreach($_POST as $key=>$var) {
  $key = strtr($key, $string_from, $string_to);
  if(get_magic_quotes_gpc()) $var = stripslashes($var);
  if($var == "eweb_submit") ;
  else $rebody.="[".$key."] ".$var."\n";
}
$rebody.="\n------------------------------------------------------------------------------------\n\n";
$rebody.="送信日時:".date( "Y/m/d (D) H:i:s", time() )."\n";
$rebody.="─────────────────────────────────────────
株式会社トランジット
〒160-0021
東京都新宿区歌舞伎町2-1-2 HANROKUビル4F
Hanroku Building 4F, 2-1-2 Shinjyuku, Kabukicho, Tokyo, 160-0021
E-mail: info@aska-t3.co.jp
URL: http://transit-emenu.com
─────────────────────────────────────────
\n\n";
$reto = $_POST['email'];
$rebody=mb_convert_encoding($rebody,"JIS","UTF-8");
$resbj="=?iso-2022-jp?B?".base64_encode(mb_convert_encoding($resbj,"JIS","UTF-8"))."?=";
$reheader="From: $to\nReply-To: ".$to."\nContent-Type: text/plain;charset=iso-2022-jp\nX-Mailer: PHP/".phpversion();

//--- 終了 --->
}

$body=mb_convert_encoding($body,"JIS","UTF-8");
$sbj="=?iso-2022-jp?B?".base64_encode(mb_convert_encoding($sbj,"JIS","UTF-8"))."?=";
if($from_add == 1) {
  $from = $_POST['email'];
  $header="From: $from\nReply-To: ".$_POST['email']."\nContent-Type: text/plain;charset=iso-2022-jp\nX-Mailer: PHP/".phpversion();
} else {
  $header="Reply-To: ".$_POST['email']."\nContent-Type: text/plain;charset=iso-2022-jp\nX-Mailer: PHP/".phpversion();
}
if($chmail == 0 || $sendm == 1) {
  mail($to,$sbj,$body,$header);
  if($remail == 1) { mail($reto,$resbj,$rebody,$reheader); }
}
else { htmlHeader();
?>

<!--- 送信確認画面のレイアウトの編集 --- 開始 ------------->

    <h2 class="sub-hl">お問い合わせ内容確認</h2>
    <div class="inquiry-section01-inner">

      <p class="inquiry-caution01">ご入力内容を確認の上、お間違えがなければ【送信】ボタンを押してください。</p>

      <div class="row">
        <div class="col-sm-8 col-sm-offset-2"> 
          <form action="<? echo $script; ?>" method="POST" class="form-inquiry">
            <? //echo $err_message; ?>
            <table class="table tbl-form">
            <?php
            foreach($_POST as $key=>$var) {
              $key = strtr($key, $string_from, $string_to);
              if(get_magic_quotes_gpc()) $var = stripslashes($var);
              $var = htmlspecialchars($var);
              print("<tr><th><span>".$key."</span></th><td><span class='form-inquiry-confirm'>".$var."</span>");
            ?>
            <input type="hidden" name="<?= $key ?>" value="<?= $var ?>">
            <?php
              print("</td></tr>\n");
            }
            ?>
            </table>
            <br>
            <input type="hidden" name="eweb_set" value="eweb_submit">
            <div class="row">
              <div class="col-xs-6 text-right btn-back">
                <button type="button" onclick="history.back()" class="btn btn-primary">入力画面に戻る</button>
              </div>
              <div class="col-xs-6 text-left btn-submit">
                <input type="submit" value="送信" class="btn btn-primary">
              </div>
            </div>
          </form>
        </div>
      </div>

     </div>
    
    
<!--- 終了 --->


<?php htmlFooter(); } if(($jpage == 0 && $sendm == 1) || ($jpage == 0 && ($chmail == 0 && $sendm == 0))) { htmlHeader(); ?>


<!--- 送信終了画面のレイアウトの編集 --- 開始 ------------->

ありがとうございました。<br>
送信は無事に終了しました。<br><br>

<!-- 著作権表示                                                            -->
<!-- 消しても構いませんが、その際はeWebにリンクを貼ってくれると嬉しいです。
<font size="-1"><a href="http://www.eweb-design.com/">eWeb Mail</a></font><br>
-->

<!--- 終了 --->


<?php htmlFooter(); } else if(($jpage == 1 && $sendm == 1) || $chmail == 0) { header("Location: ".$next); } function htmlHeader() { ?>
<h2>お問い合わせ・お申込みフォーム</h2>
                  <p class="inquiry-caution01">下記フォームに必要事項をご入力の上、【入力内容の確認】ボタンを押してください。<br><span class="icon-caution">※</span>印は必須項目です</p>
                  <div class="row">
                    <div class="col-sm-8 col-sm-offset-2">
                      <form method="post" action="sendmail01.php" class="form-area">
                        <table class="table tbl-form">
                          <tbody>
                            <tr>
                              <th><span>貴社名</span><span class="icon-caution"> ※</span></th>
                              <td><input size="30" type="text" name="貴社名" placeholder="株式会社トランジット"></td>
                            </tr>
                            <tr>
                              <th><span>ご担当者名</span><span class="icon-caution"> ※</span></th>
                              <td><input size="30" type="text" name="ご担当者名" placeholder="鈴木 太郎" class="input-len01"></td>
                            </tr>
                            <tr>
                              <th><span>フリガナ</span><span class="icon-caution"> ※</span></th>
                              <td><input size="30" type="text" name="フリガナ" placeholder="スズキ タロウ(全角カナ)" class="input-len01"></td>
                            </tr>
                            <tr>
                              <th><span>住所</span><span class="icon-caution"> ※</span><br><span class="inquiry-caution02">郵便番号にはハイフン(-)をつけて入力ください。</span></th>
                              <td><input size="30" type="text" name="郵便番号" placeholder="000-0000(半角数字)" class="input-len02"><br><br><input size="30" type="text" name="住所" placeholder="東京都新宿区歌舞伎町2-1-2  HANROKUビル5F"></td>
                            </tr>
                            <tr>
                              <th><span>電話番号</span><span class="icon-caution"> ※</span></th>
                              <td><input size="30" type="text" name="電話番号" placeholder="03-0000-0000"></td>
                            </tr>
                            <tr>
                              <th><span>FAX番号</span></th>
                              <td><input size="30" type="text" name="FAX番号" placeholder="03-0000-0000"></td>
                            </tr>
                            <tr>
                              <th><span>メールアドレス</span><span class="icon-caution"> ※</span></th>
                              <td><input size="30" type="text" name="email" placeholder="xxxx@xxx.co.jp"></td>

0 个答案:

没有答案