メールを送信するためのフォームを作成してみます。
メールを送信するには、事前にPHPの設定ファイルである
php.iniでメールサーバーとメールアドレスを設定する必要があります。
メールサーバーがSMTP認証を必要とする場合、sendmail.iniも
設定が必要です。
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title>メールを送信してみる</title> <link rel="stylesheet" href="../style.css"> </head> <body> <form action="" method="post"> タイトル:<input type="text" name="sub"><br> 宛先:<input type="text" name="to" ><br> <textarea rows="10" cols="50" name="msg"></textarea><br> <input type="submit" value="送信"> </form> <?php if( isset( $_POST["to"]) ){ //宛先のアドレス $to = $_POST["to"]; } if( isset( $_POST["sbj"]) ){ //メールのタイトル $sbj = $_POST["sbj"]; }else{ $sbj = null; } if( isset( $_POST["msg"]) ){ //本文 $msg = $_POST["msg"]; }else{ $msg = null; } //日本語メール用のヘッダー $hdr = "Content-Type: text/plain;charset=ISO-2022-JP"; //日本語を指定 mb_language("ja"); //文字コードを使用コードからJISにする $sbj = mb_convert_encoding($sbj,"JIS","UTF-8"); $msg = mb_convert_encoding($msg,"JIS","UTF-8"); if( isset($_POST["to"]) ){ //日本語でメールを送信 if( mb_send_mail( $to,$sbj,$msg,$hdr ) ){ echo "送信完了<br>"; }else{ echo "送信失敗<br>"; } } ?> </body> </html> |
メールを送信するには、以下の情報が必要です。
1.メールの送信先(to)
2.題名(subject)
3.本文(message)
4.ヘッダー(header)
1~3は、ユーザーがフォームに入力した値を使います。
$_POSTから値を取得します。
日本語でメールを送信するには設定が必要で、まずは、
mb_language()関数を使ってマルチバイト環境として日本語指定します。
上記の2と3については、文字コードをUTF-8からJISにしてます。
この変換はmb_convert_encoding()関数を使っています。
次に、日本語メールとしてmb_send_mail()関数を使って
送信します。宛先、題名、本文、ヘッダーを引数として設定します。