ارسال ایمیل در php

ناصر نادری | 1397/11/25


بنام خدا .

در این بخش از آموزش های 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)

;  

موضوع ایمیل تموم نشده و در آینده بیشتر به این بحث خواهیم پرداخت .

تا جلسه بعد در پناه حق...


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید