読者です 読者をやめる 読者になる 読者になる

Webデザインの勉強 | フェリカテクニカルアカデミーWebサイト制作科サポートブログ

フォーム実践(3)入力内容をメールで送信

PHP

mb_send_mail関数

  • 「日本語」のメール送信に役立つPHP関数
  • 「mb_send_mail(送信先, タイトル, 本文, 追加ヘッダー)」というパラメータで実行します
  • 「追加ヘッダー」には、送信元を指定するのが典型的なパターンです
<?php
$to = "クライアントメールアドレス, {$email}";
$title = "【メールフォームより】";
$subject = "お問い合せを受け付けました。";
$text_header = "From: {$email}";
$body =  "メール本文";
$rc = mb_send_mail( $to, $title, $subject, $body, $text_header );
メール送信にはメールサーバーが必要
  • 外部メールサーバー(レンタルサーバー)を使う方法で実行します
  • ローカルサーバーの場合は「php.ini」の編集が必須です
長いメール本文を組み立てる
  • 「ヒアドキュメント(here document)」を使う
  • ヒアドキュメントは、名前をつけた文字列を出力する

echo <<< 開始ID


終端ID;


開始IDの注意点

  1. 開始IDの前後に全角空白があるとIDはその空白も含めたものになる
  2. 開始IDの後ろにタブと半角スペースは入れられない
  3. <<< とIDの間にはタブと半角スペースを入れられる
  4. 開始IDの後ろにはコメントもつけられない


終端IDの注意点

  1. 終端IDは必ず行頭に置かなくてはならない
  2. 終端IDの行には「;」(セミコロン)以外置いてはならない
  3. タブやスペースでのインデントもセミコロンの前後に空白も不可
  4. コメントもつけられない
check.phpからsubmit.phpに遷移
<?php
// セッションの開始
session_start();
$uname = $_SESSION[ 'uname' ];
$email = $_SESSION[ 'email' ];
$message = $_SESSION[ 'message' ];
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>メールフォーム</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>完了画面</h1>
<?php
echo $uname.'様<br>'. "\n";
echo 'お問い合わせ、ありがとうございました。<br>'. "\n";
echo 'お問い合わせ内容『'.$message.'』を<br>'. "\n";
echo $email.'にメールで送りましたのでご確認ください。'. "\n";

// メール本文の組み立て
$to = "xxx@gmail.com, {$email}";
$title = "【メールフォームより】";
$text_header = "From: {$email}";
$body =  <<<EOM
--------------------------------------------------
【Webサイトからのメール】

お名前:{$uname}
メールアドレス:{$email}
メッセージ:{$message}
--------------------------------------------------
EOM;


// メール送信の実行
$rc = mb_send_mail($to, $title, $body, $text_header);
if (!$rc) {
    exit;
} else {
    $_SESSION = NULL;
}

?>
<p><a href="index.php">トップへ戻る</a></p>
</body>
</html>