電子メールを送信する

電子メールを送信する

  • ローカルテストサーバーでは確認できない



《HTML》

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>電子メールを送信する</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="wrap">
<div id="head">
<h1>電子メールを送信する</h1>
</div>
<div id="content">
<form action="sample19.php" method="post">
<dl>
<dt>送信先(To)</dt>
<dd><input name="email" type="text" id="email" size="50" maxlength="255"></dd>
<dt>サブジェクト</dt>
<dd><input name="subject" type="text" id="subject" size="50" maxlength="255"></dd>
<dt>内容</dt>
<dd><textarea name="message" id="message" cols="50" rows="10"></textarea>
</dd>
</dl>
<input type="submit" value="送信する">
</form>
</div>
</div>
</body>
</html>


PHP

<?php
mb_language("japanese");
mb_internal_encoding("UTF-8");
 
if (!empty($_POST['email'])) {
	$to = $_POST['email'];
	$subject = $_POST['subject'];
	$body = $_POST['message'];
	$from = mb_encode_mimeheader(mb_convert_encoding("BOSS","JIS","UTF-8"))."<teshirogiboss@gmail.com>";
	
	$success = mb_send_mail($to,$subject,$body,"From:".$from);
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>電子メールを送信する</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="wrap">
<div id="head">
<h1>電子メールを送信する</h1>
</div>
<div id="content">
<p style="margin-top: 200px">
<?php
if ($success) {
	print('送信しました');
} else {
	print('送信に失敗しました');
}
?>
</p>
</div>
</div>
</body>
</html>
  • PHPには「mail」関数がありますが、日本語の表示には対応していません
  • 日本語のメール送信には「mb_send_mail」関数を使います
マルチバイト文字
  • 1文字を複数バイトで表す体系
  • 1文字のバイト数が可変であるような体系
  • そのような体系で表される文字

を指すが、文脈により意味合いが異なる。



mb(Multibyte Character Set)