همان  طور که می دانید یکی از راه های ارتباطی قدرتمند که کاربران اینترنت بوسیله ی آن باهم ارتباط برقرار می کنند ، ایمیل و یا به عبارتی نامه ی الکترونیکی است.

کار با ایمیل از قبیل دریافت و ارسال نامه در PHP بسیار وسیع و گسترده است به طوری که می توانید یک برنامه ی Web Mail بسیار پیشرفته بسازید. تابع Mail در PHP و در هر زبان برنامه نویسی دیگری از سه پروتکل (POP , IMAP , SMTP) برای دریافت یا ارسال نامه استفاده می کند که در اینجا ما فقط به بررسی پروتکل IMAP می پردازیم که برای ارسال نامه در PHP از آن استفاده می شود و دو پروتکل مذکور دیگر برای دریافت نامه استفاده می شود.

برای مشاهده ی متن کامل مقاله ادامه ی مطلب را کلیک کنید

همان طور که می دانید یکی از راه های ارتباطی قدرتمند که کاربران اینترنت بوسیله ی آن باهم ارتباط برقرار می کنند ، ایمیل و یا به عبارتی نامه ی الکترونیکی است.

کار با ایمیل از قبیل دریافت و ارسال نامه در PHP بسیار وسیع و گسترده است به طوری که می توانید یک برنامه ی Web Mail بسیار پیشرفته بسازید. تابع Mail در PHP و در هر زبان برنامه نویسی دیگری از سه پروتکل (POP , IMAP , SMTP) برای دریافت یا ارسال نامه استفاده می کند که در اینجا ما فقط به بررسی پروتکل IMAP می پردازیم که برای ارسال نامه در PHP از آن استفاده می شود و دو پروتکل مذکور دیگر برای دریافت نامه استفاده می شود.

حال می خواهیم یک نامه ی ساده را با تابع Mail بوسیله ی PHP ارسال کنیم. همان طور که ذکر شد ، PHP این کار را با پروتکل SMTP انجام می دهد. شکل کلی تابع mail برای ارسال نامه بصورت زیر است :

  mail (to, subject, body, [,headers])

to : آدرس ایمیل گیرنده است      Subject : موضوع نامه است          Body: متن اصلی نامه است      Headers : سرآیندهای نامه هستند

حال مثالی برای روشن شدن موضوع به طور ساده ذکر می کنیم:

مثال : کد زیر یک نامه ی بسیار ساده و متنی را به ایمیل من می فرستد:

1 <?php
2 $to = "bahramwhh@gmail.com";
// Reciver Email
3 $subject = "Simple PHP Mail Test"; 
// The Subject Of Your Mail

4 $body = "Ba Salam

5         Een Yek Azmayesh PHP Hast ";

6 $from = "info@whhweb.com";  // The Sender Mail

7 $headers = "From: $from\r\n";  // Just Write This We Complete this later

8 mail($to, $subject, $body, $headers);  // Mail Function to Send mail

9 ?>


توضیح کد :  در خط 2 متغیری به نام to برای ایمیل گیرنده تعریف کرده ایم در خط 3 متغیر Subject را برای موضوع نامه و Body و Headers را به ترتیب برای متن نامه و سرآیندهای نامه تعریف کرده ایم. در متغیر body دقت کنید که می توانید متن نامه ی خود را چندخطی کنید (به همین صورتی که در مثال آورده شده است). دقت کنید قسمت Headers را می توانستیم اصلا ذکر نکنیم و هیچ خطایی رخ نمی داد ولی بعد از آنکه ایمیل به دست گیرنده می رسید با ایمیل پیشفرض جایی که کد را در آنجا اجر کرده اید (میل سرور سایتتان) فرستاده می شد.

نکته ی مهم : می توانید تمامی آنچه را که ما در مثال نمونه در متغیر قرار دادیم بطور مستقیم در تابع قرار دهید. این کار به کوتاه شدن برنامه کمک می کند اما ظاهری نامتناسب پیدا می کند. مانند کد زیر :

1 <?php
2 mail("bahramwhh@gmail.com", "PHP mail", "ba Salam");

3 ?>

 

اما دقت  کنید لازمه ی ارسال یک نامه ی کامل آشنایی با سرآیندها یا headersها است. در نتیجه انواع سرآیندها را در زیر ذکر می کنیم.

انواع سرآیندها :

سرآیند From : سرآیند From نشان می دهد که نامه از طرف چه ایمیلی ارسال شده است و کاربرد آن به صورت زیر است. (email ایمیل فرستنده است.)

From : $email\r\n

سرآیند Reply-to : این سرآیند اصل نامه را برای فرد (یا افراد دیگری) نیز ارسال می کند و کاربرد آن به صورت زیر است:

Reply-to : $email\r\n

سرآیند Cc : این سرآیند پکی نامه را برای فرد (یا افراد دیگری) ارسال می کند. دقت کنید اگر تعداد ایمیل های ذکر شده بیش از یکی باشد آن ها را با کاما (,) از هم جدا کنید. کاربرد این سرآیند به صورت زیر است:

Cc : $email\r\n

سرآیند Bcc : این سرآیند کپی نامه را به طور مخفی برای افرادی که از پیش تعیین کرده اید ارسال می کند. به طوری که فرد گیرنده (to)از ارسال ایمیل به این افراد مطلع نمی شود. کاربرد این سرآیند به صورت زیر است:

Bcc : $email

نکته : اگر خواستید سرآیندها را با هم بکار ببرید آن ها را بدون فاصله پشت سرهم بنویسید فقط برای خوانایی حرف اول سرآیند جدید را بزرگ بنویسید.

خوب تا حالا با بیشتر سرآیندها آشنا شده ایم. برای روشن شدن بیشتر موضوع سرآیندها همان مثال قبلی را با سرآیندهای جدیدی که خواندیم بازنویسی می کنیم:

 

1 <?php
2 $to = "bahramwhh@gmail.com";
// Reciver Email
3 $subject = "Simple PHP Mail Test"; 
// The Subject Of Your Mail

4 $body = "Ba Salam

5         Een Yek Azmayesh PHP Hast ";

6 $from = "info@whhweb.com";  // The Sender Mail

7 $cc = "info@majidonline.com, info@yahoo.com"; // The Cc Headers

8 $bcc = "bahramwhh@yahoo.com"; // The Bcc Headers

9 $headers = "From: $from\r\nCc: $cc\r\nBcc: $bcc";  // We completed this

10 mail($to, $subject, $body, $headers);  // Mail Function to Send mail

11 ?>

همان طور که می بینید در خط 9 سرآیندهای Ccو Bcc بلافاصله بعد از سرآیندهای دیگر آمده اند تنها حرف اول آن ها را برای زیبایی و خوانایی کد بزرگ نوشته ایم.

البته برای مشاهده ی نتیجه می توانید کدهای فوق را در فایلی با نام (test.php) ذخیره کنید (البته بدون شماره ها) و آن را اجرا کنید.

 

یک سوال :

همان طور که ملاحظه می فرمایید این کد تنها قادر است نامه های با متن بسیار ساده و معمولی ارسال کند. حتی اگر شما یک کد HTML را در قسمت body نامه ی خود قرار دهید (خط های 4 و 5) بعد از ارسال نامه نتیجه بصورت Source صفحه ی مورد نظر است. حال این سوال پیش می آید که چطوری می توان یک نامه ی HTML با خروجی مطلوب ارسال نمود؟

 

به امید خدا جواب این سوال را در مقاله ی بعدی برایتان باز می کنم که مربوط به دیگر سرآیندهای نامه است.

در صورت هرگونه سوال با ایمیل بنده تماس حاصل فرمایید

با تشکر - بهرام بهرام بیگی

مدیر وب سایت نفوذگران کلاه سفید

نوشته شده در تاریخ شنبه 24 دی 1384    | توسط: بهرام بهرام بیگی    | طبقه بندی: عمومی،     |
نظرات()