PHPラボ

お問い合わせフォーム:メール送信

メールの送信

mb_send_mailについて

メール送信のプログラミングは、input_s.phpに記述します。仕組みは、input.phpの隠しフィールドから値を飛ばして、if文で処理をする部分とほぼ同じです。全体のプログラミングの流れを見ていく前に、まずは、mb_send_mailについて説明します。

mb_send_mail(送信先メールアドレス,表題,本文,ヘッダ文字列);

mb_send_mailは、文字コードを内部で処理するコードから変換してメールを送信する関数です。引数(ひきすう)には、送信先メールアドレス、表題、本文、ヘッダ文字列等があります。

* 引数とは、関数に受け渡す値のことです。例えば、送信先メールアドレスの引数に、自分のメールアドレスを渡せば、自分のメールアドレスにメールを送信することができます。

例;

$mailad="penta@webpenta.com";
$subject="ここにタイトルを入れます。";
$message="ここに本文を入れます。\n改行は、\nです。";
$from="From:" .mb_encode_mimeheader("ペンタ") ."<penta@webpenta.com>";
mb_send_mail($mailad,$subject,$message,$from);

これで、penta@webpenta.com宛に、題名「ここにタイトルを入れます。」、本文「ここに本文を入れます。\n改行は、\nです。」というメールを送信することができます。最後の$fromは、ヘッダ文字列で、From:にあたる部分を設定しています。では、前項までに構築したプログラミングにmb_send_mail関数を追加してみましょう。

mb_sendmailを追加

「メールの送信」ボタンをクリックすると、隠しフィールドから、自分自身のPHP「input_s.php」に「name="action",vlue="send"」が飛び、上のif文で、処理する仕組みは前項で説明した通りです。

if($_POST['action']=="send"){

//言語と文字コードを設定
mb_language("ja");
mb_internal_encoding("EUC_JP");

//PentaCreation宛
$mailad="penta@webpenta.com";
$subject="テスト投稿";
$message=$_SESSION['name'];
$from='From:'.mb_encode_mimeheader("ペンタ").'<penta@webpenta.com>';

mb_send_mail($mailad,$subject,$message,$from);
header("Location:thanks.php");
}

では、送信ボタンがクリックされたら、言語と文字コードを指定、各引数を変数に入れてmb_send_mail関数を実行、thanks.phpに飛ばしています。

$messageの部分に、$_SESSION['name'];を入れていますが、このようにフォームで入力されたデータは、一度セッション変数にしまい、それをmb_send_mail関数に渡すことによって、フォームで入力されたデータをメール送信させることが可能となります。

セッションの消去について

セッションを追加

thanks.phpは以上のとおり。基本的に、作業が完了したことを通知するのが役割ですが、裏で、セッションを消去する作業も行います。これは、同一マシンを複数のユーザーが使っていることへの配慮です。

プログラミングは簡単で、上部でセッションを宣言し、session_unset();関数を実行してセッションデーターを消去するのみです。

Copyright (c) Penta Creation All rights reserved.