3300.me

send_mail / phpのメール送信

last update: 2014/02/16

1) index.html

<!doctype html>
<title>Sample: Send mail</title>
<meta charset="UTF-8">

<style>
label{display:block;}
</style>

<h1>1) Input</h1>

<form method="post" action="check.php">
  <label>from(name): <input type="text" name="from"></label>
  <label>to(email): <input type="email" name="to"></label>
  <label>subject: <input type="text" name="subject"></label>
  <label>content: <textarea name="content"></textarea></label>
  <input type="submit" value="check">
</form>

2) check.php

<!doctype html>
<title>Sample: Send mail</title>
<meta charset="UTF-8">

<style>
.warn{color:#f00;}
</style>

<h1>2) Check</h1>

<?php

$from = htmlspecialchars($_POST['from']);
$to = htmlspecialchars($_POST['to']);
$subject = htmlspecialchars($_POST['subject']);
$content = htmlspecialchars($_POST['content']);

$from = html_entity_decode($from, ENT_QUOTES, "UTF-8");
$to = html_entity_decode($to, ENT_QUOTES, "UTF-8");
$subject = html_entity_decode($subject, ENT_QUOTES, "UTF-8");
$content = html_entity_decode($content, ENT_QUOTES, "UTF-8");

if($from == ''){ print '<p class="warn">warning : no from(name)</p>'."\n"; } else { print '<p>from(name) : '.$from.'</p>'."\n"; }
if($to == ''){ print '<p class="warn">warning : no to(email)</p>'."\n"; } else { print '<p>to(email) : '.$to.'</p>'."\n"; }
if($subject == ''){ print '<p class="warn">warning : no subject</p>'."\n"; } else { print '<p>subject : '.$subject.'</p>'."\n"; }
if($content == ''){ print '<p class="warn">warning : no content</p>'."\n"; } else { print '<p>content : '.$content.'</p>'."\n"; }

if($from == '' || $to == '' || $subject == '' || $content == ''){
  print '<input type="button" onclick="history.back();" value="back">'."\n";
} else {
  print '<form method="post" action="send.php">'."\n";
  print '  <input type="hidden" name="from" value="'.$from.'">'."\n";
  print '  <input type="hidden" name="to" value="'.$to.'">'."\n";
  print '  <input type="hidden" name="subject" value="'.$subject.'">'."\n";
  print '  <input type="hidden" name="content" value="'.$content.'">'."\n";
  print '  <input type="button" onclick="history.back();" value="back">'."\n";
  print '  <input type="submit" value="send mail to '.$to.'">'."\n";
  print '</form>';
}

?>

3) send.php

<!doctype html>
<title>Sample: Send mail</title>
<meta charset="UTF-8">

<h1>3) Send</h1>

<?php

$from = $_POST['from'];
$to = $_POST['to'];
$subject = $_POST['subject'];
$content = $_POST['content'];

// sampleでは特定のアドレス制限あり

mb_language("Ja");
mb_internal_encoding("UTF-8");
$from = "From:".mb_encode_mimeheader($from)."<test@test>\n";

mb_send_mail($to, $subject, $content, $from);

print '<p>Done.</p>';

?>

sample