2007-11-21
CAPCHAとPHP/GDで認証付Webからメール 試作
日本語の処理が課題(2007-11-20バージョン)
<?php
session_start();
?>
Enter text shown below:<br />
Sorry now English only<br />
<form action="index.php" method="post">
<table>
<tr><td>From: </td><td><input type="text" name="mfromadrs" value="@">
(Name)<input type="text" name="mfromname" value=""></td></tr>
<tr><td>Subject: </td><td><input type="text" name="msubject" value=""></td></tr>
<tr><td valign="top">Body: </td><td>
<textarea name="mbody" rows="10" cols="50" ></textarea></td></tr>
<!--tr><td>attach</td><td><input type="text" name="mattach" value=""></td></tr-->
<tr><td valign="top">keystring</td><td valign="top"><input type="text" name="keystring" value="" size="21"></td></tr>
<tr><td valign="top"></td><td valign="top"><img align="top" src="kcapindex.php?<?php echo session_name()?>=<?php echo session_id()?>"></td></tr>
<!--tr><td>status</td><td><input type="text" name="mstatus" value=""></td></tr-->
<tr><td><input type="submit" value="Send"></td><td></td></tr>
</table>
</form>
<?php
if(count($_POST)>0){
if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring'] && $_POST['mfromadrs'] && $_POST['msubject'] && $_POST['mbody'] ) {
echo "OK";
msendmail($_POST['mfromadrs'],$_POST['mfromname'],$_POST['msubject'],$_POST['mbody'],$_POST['mattach'],$_POST['mstatus']);
}else{
echo "error, check fill From: Subject: and Body: or keystring";
}
}
unset($_SESSION['captcha_keystring']);
function msendmail($mfromadrs,$mfromname,$msubject,$mbody,$mattach,$mstatus)
{
//load library
require_once("Mail.php");
require_once("Mail/mime.php");
//language setting (Japanese)
mb_language("japanese");
mb_internal_encoding("EUC-JP");
//send attatchment mail
$to = "a@adgj.net"; //to
$subject = $msubject; //subject
$body = $mbody; //body
$from = $mfromadrs;
$fromname = $mfromname; //from name
$attachfile = "./test.doc"; //attachment path
$mail = Mail::factory("mail");
$body = mb_convert_encoding($body,"JIS","Shift_JIS");
$mime = new Mail_Mime("\n");
$mime->setTxtBody($body);
//add atatchment
//$mime->addAttachment($attachfile,"application/octet-stream");
$body_encode = array(
"head_charset" => "ISO-2022-JP",
"text_charset" => "ISO-2022-JP"
);
$body = $mime->get($body_encode);
$headers = array(
"To" => $to,
"From" => mb_encode_mimeheader(mb_convert_encoding($fromname,"JIS","Shift_JIS"))."<".$from.">",
"Subject" => mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","Shift_JIS"))
);
$header = $mime->headers($headers);
$return = $mail->send($to,$header,$body);
print "<br />\nmail sent<br />\n";
}
?>
登録 投稿 [Atom]