بنام خدا .
در این بخش از آموزش های php باهم ارسال ایمیل ها رو خواهیم داشت .
گاهی اوقات برای انجام بعضی کارا توی php نیاز داریم که نگاهی به تنظیمات php بندازیم . تنظیمات این زبان در فایل php.ini موجود در شاخه bin در مسیر نصب php قرار داره مثلا برای من که از wamp استفاده میکنم مسیر فایل /bin/php/php5.5.12 هست .
ارسال ایمیل هم یکی از اون مسائلی هست که نیاز به انجام یکسری تنظیمات داره . البته میشه از طریق کد php هم تنظیمات داخل php.ini رو تغییر داد .
تنظیمات مربوط به ایمیل در بخش [mail function] در این فایل قرار داره . دو چیز هست که کاربر ویندوز باید دقت کنه یکی سرور smtp برای ارسال ایمیل هست و دیگری آدرس ایمیلی هست که باید ایمیلمون از ش ارسال بشه . برای تغییر این دو بخش میتونید این بخش رو ببینید .
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = prgnaderi@hotmail.com
SMTP در واقع سرور ارسال ایمیل رو مشخص میکنه و sendmail_from ایمیل پیش فرضی که ایمیلها از اون ارسال میشن.
این تنظیمات روی سروری که میخوایین سایت رو آپلود کنید باید انجام بدیم و معمولا از لوکال ایمیل ارسال نمیشه .
در هر حال برای ارسال ایمیل در php از تابع mail با فرمت زیر استفاده میکنیم :
mail( to, subject, message, headers, parameters );
to : ایمیلی هست که باید بهش ارسال بشه
subject : موضوع ایمیل هست
message : متن پیام هست
headers : حاوی بخش سرایند ایمیل که دربردارنده بخش cc و bcc هست.
parameters : پارامتر هایی که میشه توی ارسال ایمیل استفاده کرد .
نمونه کد زیر را ببینید :
//ایمیل هدف
$to = "xyz@somedomain.com";
$subject = "موضوع ایمیل";
$message = "متن پیامی که میخوایید ارسال کنید.";
$header = "From:abc@somedomain.com \r\n";
//ارسال ایمیل و برگرداندن وضعیت ارسال که میتونه موفق یا درست و یا ناموق یا غلط باشه
$retval = mail ($to,$subject,$message,$header);
if( $retval == true )
{
echo "ایمیل با موفقیت ارسال شد...";
}
else
{
echo "ایمیل ارسال نشد...";
}
برای اینکه بهتر با بخش سرآیند آشنا بشید کد پایین رو ببینید و اجرا کنید .
$to = 'nobody@example.com';
$subject = 'موضوع';
$message = 'متن پیام';
//نمونه ای از بخش سرایند کاملتر
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
برای ارسال یک ایمیل در قالب html که معمولا هم توی ایمیل های تبلیغاتی ارسال فاکتور ها و غیره استفاده میشه توی متن پیام از قالب html استفاده میکنیم ولی باید تنظیمات مربوط به content-type رو هم به بخش headers اضافه کنیم :
// دریافت کننده
$to = 'yourmail@example.com';
// موضوع
$subject = 'پاسخی از اپ این اپس';
// متن پیام که در قالب html هست
$message = '
<html>
<head>
<title>ایمیل از appinapps</title>
</head>
<body>
<h1>پاسخی از appinapps!</h1>
<table>
<tr>
<td>برای یادگیری زبان php به این بخش مراجعه کنید</td>
</tr>
</table>
</body>
</html>
';
//برای ارسال یک ایمیل در قالب html باید توی header تنظیمات مربوط به Content-type رو بیاریم
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
// ارسال ایمیل
mail($to, $subject, $message, $headers)
;
موضوع ایمیل تموم نشده و در آینده بیشتر به این بحث خواهیم پرداخت .
تا جلسه بعد در پناه حق...