آموزش ساده ارسال ایمیل با PHP
فرستادن ایمیل تقریباً یک کار روزمره (شاید ساعتمره یا دقیقهمره!) برای سایت هایی ست که کاربران بسیاری دارند می باشد. ارسال ایمیل با php بسیار آسان است. کلاس ها و توابع فراوانی برای این کار وجود دارند. در این آموزش با روش هایی برای ارسال ایمیل آشنا می شوید. همان طور که می دانید ایمیل ها اقسام مختلفی دارند. ایمیل می تواند شامل فایل ضمیمه، تصاویر درونی، فرمت دوتایی(HTML/text) و غیره باشد.
ما با یک ایمیل ساده شروع می کنیم. این ایمیل از تابع ابتدایی ()mail استفاده می کند.
برای این کار از کد زیر استفاده می کنیم:
date_default_timezone_set("Asia/Tehran");
$to = "info@phpdevelopers.ir";
$subject = "Test Text Email Only";
$headers = "From: me@mysite.comrnX-Mailer: Custom PHP Script";
$body = "Hi.nnHello World!nnRegards,nnWiwit.";
mail($to, $subject, $body, $headers);
?>
حال این کد را تشریح می کنیم:
date_default_timezone_set("Asia/Tehran");
1) در اینجا زمان را بر حسب منطقه جغرافیایی را مشخص کردیم. Asia/Tehran منطقه جغرافیایی ایران را مشخص می کند که در ساعت 3:30+ واقع است.
$to = "info@phpdevelopers.ir";
2) از متغیری دلخواه مانند to$ برای نگهداری آدرس ایمیل مقصد استفاده می کنیم.
$subject = "Test Text Email Only";
3) از متغیری دلخواه مانند subject$ برای نگهداری عنوان ایمیل استفاده می کنیم.
$headers = "From: me@mysite.comrnX-Mailer: Custom PHP Script";
4) در اینجا هدری که می خواهیم ارسال شود را تعیین می کنیم. آدرس فرستنده از جمله مواردی است که می توانیم در این هدر استفاده کنیم.
پارامترهای هدر ارسالی با rn از یکدیگر جدا می شوند.
$body = "Hi.nnHello World!nnRegards,nnWiwit.";
5) متن ایمیل را در اینجا قرار می دهیم. همان طور که می دانید n برای ایجاد خط جدید است که در رشته های متنی(text) استفاده می شود.
mail($to, $subject, $body, $headers);
6) در نهایت موارد لازم را در تابع mail قرار می دهیم. هم اکنون ایمیل ارسال شد!
در مرحله بعدی می خواهیم یک ایمیل html ارسال کنیم. شاید تا کنون با یک ایمیل تبلیغاتی برخورد کرده باشید. اکثر این ایمیل ها شامل کدهای html هستند. آن ها چیدمان زیبایی دارند و حاوی جدول ها، رنگ های زیبای نوشته و غیره هستند. آن ها تنها بدنه ایمیل ارسالی را تغییر داده و کدهای html را وارد آن کرده اند و همچنین یک هدر Content-type: text/html به آن اضافه کرده اند.به مثال زیر نگاه کنید:
date_default_timezone_set('Asia/Tehran');حال کدهای جدید را بررسی می کنیم:
$to = "info@phpdevelopers.ir";
$to .= ", " . "soheil@phpdevelopers.ir";
$subject = "Test for HTML Format";
$headers = "MIME-Version: 1.0rn";
$headers .= "Content-type: text/html; charset=utf-8rn";
$headers .= "To: Information Department ,
Soheil Novinfard rn";
$headers .= "From: Me rn";
$headers .= "Cc: rasouli@phpdevelopers.irrn";
$headers .= "Bcc: hamid@phpdevelopers.irrn";
$body = "
ایمیل آزمایشی
سلام این ایمیل آزمایشی است.
";
mail($to, $subject, $body, $headers);
?>
$to .= ", " . "soheil@phpdevelopers.ir";1) به قسمت دریافت کننده های اصلی این ایمیل، یک پست الکترونیکی جدید را اضافه کرده ایم. در رشته ی to حتما باید کاراکتر کاما(،) به رشته موجود اضافه شود و در میان ایمیل های دریافت کننده، قرار گیرد.
در PHP از نقطه(.) برای الحاق رشته ها، استفاده می شود.
$headers = "MIME-Version: 1.0rn";2) در چند کد جدید بعدی هدر های جدیدی به ایمیل اضافه شده است. در اینجا نسخه MIME برای ایمیل ارسالی، تعریف شده است.
$headers .= "Content-type: text/html; charset=utf-8rn";3) در این هدر ارسالی، نوع ایمیل از نوع html انتخاب شده و اینکودینگ کارکتری آن را از نوع utf-8 انتخاب کرده ایم.
استفاده از اینکودینگ utf-8 برای نمایش صحیح زبان فارسی در ایمیل، الزامی است.
$headers .= "To: Information Department ,4) در این هدر، برای دریافت کنندگان ایمیل، نام انتخاب می شود.
Soheil Novinfard rn";
$headers .= "Cc: rasouli@phpdevelopers.irrn";5) دریافت کنندگان نوع Cc و Bcc نامه مورد نظر ما، در این قسمت هدر مشخص می شوند.
$headers .= "Bcc: hamid@phpdevelopers.irrn";
6) در اینجا بدنه ی ایمیل ارسالی از متن به کدهای html تغییر یافته است.
ایمیل آزمایشی
سلام این ایمیل آزمایشی است.
آموزش ما در اینجا به پایان می رسد.