Posted by: dolugen on: April 5, 2008
PHP-д mail() функц ашиглан энгийн текст захиа, HTML захиа, хавсарга баримт (attachment)-тай захиаг илгээж болдог. PHP manual-д дэлгэрэнгүйгээр бий л дээ, нэг гэм нь монголоор биш юм. Мартсанаас, энэ хичээлийг OG-ийн хүсэлтээр бичлээ.
За тэгэхээр функциэ, авах утгуудыг нь тайлбарлаад, дараа нь жишээ үзүүлье.
bool mail ( string $to, string $subject, string $message[, string $additional_headers [, string $additional_parameters]] )
Энэ нь бүүлин утга буцаадаг, зөвхөн тэмдэгт мөр утга авдаг функци ажээ. Захиа илгээгдсэн гэж үзвэл үнэн, илгээгдээгүй гэвэл худал гэж хариулдаг юм байна. (Гэхдээ үнэн гэж хэлсэн болгон үнэн биш байдаг хойно доо… :P )
$to Захиа очих хаяг. Энэ нь нэгээс олон байж болдог. RFC 2822 гэдэг жишигт тохирч байх ёстой юм байна. Зарим жишээ нь:
user@example.com
user@example.com, anotheruser@example.com
User <user@example.com>
User <user@example.com>, Another User <anotheruser@example.com>
$subject Захианы нэр буюу гол санаа. Энэ хэсэгт мөр шилжих тэмдэгт (\n гэх мэт) байх ёсгүй гэдгийг анхаараарай.
$message Илгээх захианы хэсэг. Мөр тус бүр мөр шилжих тэмдэгт (\n)-ээр тусгаарлагдах ба нэг мөрөнд 70-с ихгүй тэмдэгт байх ёстой. Ингэхийн тулд chunk_split, wordwrap функцүүдийг ашиглаж болно.
$additional_headers Захианы толгой хэсэгт нэмж оруулах тэмдэгт мөр. Энэ хэсэгт From, Cc, Bcc талбаруудын утгыг мөр шилжих тэмдэгтээр тусгаарлан бичдэг. Нэг анхаарууштай зүйл нь захиа илгээхдээ From хэсгийг заавал оруулах хэрэгтэй байдаг, эс бөгөөс PHP алдаа зааж, захиа илгээхгүй.
За олон тодорхойлолтоор толгой эргүүлснээс нэг сайхан жишээ нь дээр биз, “амьдрал дээрхи” жишээг үзүүлье.
Энд манай захиа бичих маягт болох contact.html байна.
<html>
<head><title>Захиа илгээх маягт</title></head>
<body>
<form method="post" action="sendmail.php">
<label>Захианы нэр
<input type="text" name="subject"/>
</label>
<p>
<label>Таны мэил хаяг
<input type="text" name="sender" />
</label>
</p>
<p>
<label>Захиа
<textarea name="message"></textarea>
</label>
</p>
<input type="submit" name="sendmail" value="Захиаг илгээ!" />
</form>
</body>
</html>
Захиаг илгээгч маягтыг бөглөөд “Захиаг илгээ!” товчин дээр дарахад мэдээлэл form-ын action шинж чанарт байх sendmail.php хуудас руу $_POST хэмээх цуваагаар зөөгдөх юм.
Харин одоо захиаг илгээх sendmail.php скриптийг үзье:
< ?php
if(isset(sendmail)==TRUE) {
//Илгээх хаяг.
$to = 'dolugen@yahoo.com';
//Захианы нэр, захиа.
$subject = $_POST['subject'];
$message = chunk_split($_POST['message']);
//Илгээгчийн хаяг
$headers = 'From: '.$_POST['sender'] . "\r\n" .
'X-Mailer: PHP/' . phpversion();
//Захиаг илгээ!
mail($to, $subject, $message, $headers);
}
else
{
//Фаил руу шууд хандсан байна, захиа илгээх маягт руу буцаа
header("Location: contact.html");
}
?>
За тэгэхээр дээрх коодны илгээх хаягийг өөрийнхөө болгон өөрчлөөд захиа явуулах гээд үз дээ?
Тэмдэглэл: Баахан яаран бичсэн бөгөөд анхны PHP хичээл болохоор буруу зөрүү, дутуу гуцуу бичсэн байх вий, та бүхэн санал шүүмжээ хэлээрэй. Ялангуяа луухгар PHP-чдийн инээд нь хүрч буй биз гэж эмээнэ :D
yamrav deee
Parse error: syntax error, unexpected ‘)’, expecting T_PAAMAYIM_NEKUDOTAYIM in C:\wamp\www\zahia\sendmail.php on line 2 iin aldaa garaad bhiin???
April 6, 2008 at 2:15 pm
sain uu, chinii blogiig bas neg blogch maani nadad damjuulsan yum. Heregtei medeelel uuriin hellegeer oilgomjtoi tavidagt bayarlalaa. Bi Read more holboos hiij baigaa yum, automataar bichlegiin tugsguld orson read more-g zassan ch haana baih gazraa ochdoggui. Haana yamar aldaa hiigeed baigaag mini helj ugnu uu?