Тор нэхэгчийн яриа

PHP: mail() ашиглан захиа илгээх нь

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

Tags:

7 Responses to "PHP: mail() ашиглан захиа илгээх нь"

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?

Сайн уу, Destiny,

Автоматаар нэмэгдсэн холбоосыг засахдаа шинээр бичлэг хийхэд яаж HTML-г ашигладаг вэ, тэрэн шигээ л хийнэ дээ. Чамайг яг яаж засаад болохоо байчихсаныг мэдэхгүй байгаа болохоор доорхи бичлэгт дэлгэрэнгүй хариу үлдээгээрэй.

http://tornehegch.wordpress.com/2007/09/12/moretaginblogger

Жаахан залхуураал байна уу даа айн. Блог бол бүр явахаа байсан байнашт тэ.

Харин тийм ээ, завдахгүй л байна :P

Parse error: syntax error, unexpected ‘)’, expecting T_PAAMAYIM_NEKUDOTAYIM in C:\wamp\www\zahia\sendmail.php on line 2 iin aldaa garaad bhiin???

Нэг хаалтын тэмдэг л илүүдсэн байна даа

Leave a Reply


  • dolugen: Эхлээд ямар нэгэн Apache, PHP, MySQL гэх мэт суусан тооцоолууртай байх хэрэгтэй. Өөрийн то
  • argusan: Yaj suulgah yum be? zaaj uguuch
  • www.gegeen.com, gegeen@gegeen.com: oo ene yasan gogo theme-tei yum be

Архив

Цаглабар

April 2008
M T W T F S S
« Mar   Aug »
 123456
78910111213
14151617181920
21222324252627
282930  

Гийчин

  • 4,857 дахь нь болжээ та ;)

Adfree

Зургийн цомог

Бичгийн өрөө

Цэцээ гүнд наран жаргаж байна

Ой, хот

More Photos