ارسال ایمیل با تابع mail
این تابع در صورتی که بتواند ایمیل را ارسال کند true و در غیر اینصورت false برمی گرداند .تابع mail () به شما اجازه می دهد تا به طور مستقیم از یک اسکریپت ایمیل بفرستید.برای ارسال ایمیل با تابع mail سه پارامتر اصلی و چند پارامتر فرعی باید در نظر گرفته شود، پارامترهای اصلی آن آدرس ایمیل دریافت کننده (To)، موضوع (Subject) و متن پیام (Body) است، پارامترهای اضافی به شکل سربرگ ها قابل استفاده هستند (آدرس ایمیل ارسال کننده (From) اغلب اجباری است) که به طور مثال می توانند به صورت های زیر باشند:
<?php $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'X-Mailer: PHP' . "\r\n"; $headers .= 'From: yourname <youraccount@example.com>' . "\r\n"; $headers .= 'Reply-To: yourname <youraccount@example.com>' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; $headers .= 'Cc: admin@example.com' . "\r\n"; $headers .= 'Bcc: other@example.com' . "\r\n"; ?>
علامت r\n\ در کدهای بالا برای ایجاد یک خط جدید استفاده می شود، برای حفظ اثر این کدها باید در بین علامت های “” (Double Quotation) باشند نه ” (Single Quotation).
نکته: سربرگ From در اغلب پلتفرم های ایمیل اجباری است و در صورتی که این سربرگ تنظیم نشده باشد ممکن است خطای زیر را در PHP دریافت کنیم:
Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing.
ارسال ایمیل در پی اچ پی با PHP Mailer
ارسال ایمیل بهطور مستقیم با کدهای PHP نیازمند آشنایی با پروتکلهای SMTP است و ممکن است مشکلاتی به بار بیاورد. در زبان PHP راههای زیادی برای ارسال ایمیل وجود دارد و بهعنوانمثال میتوان از توابع داخلی PHP استفاده کرد که البته پیچیدگیهای خاص خود را دارد. اما استفاده از کتابخانههای PHP ویا بهعبارتدیگر پکیجها، میتواند سرعت انجام پروژه و کارایی را بهبود دهد.یکی از کتابخانههای محبوب و متنباز PHP برای ارسال ایمیل کتابخانه PHPMailer است. این کتابخانه بهراحتی در سیستمهای مدیریت محتوایی (CMS) مانند وردپرس کار میکند و مورداستفاده بسیاری از توسعهدهندگان PHP است.
نحوه نصب PHPMailer
با استفاده از کامپوزر به راحتی میتوانید PHPMailer را نصب کنید:
composer require phpmailer/phpmailer
ارسال ایمیل از سرور وب محلی با استفاده از PHPMailer
در اینجا سادهترین مثال ارسال ایمیل از سرور وب محلی با استفاده از PHPMailer آورده شده است:
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require_once "vendor/autoload.php"; //PHPMailer Object $mail = new PHPMailer(true); //Argument true in constructor enables exceptions //From email address and name $mail->From = "from@yourdomain.com"; $mail->FromName = "Full Name"; //To address and name $mail->addAddress("recepient1@example.com", "Recepient Name"); $mail->addAddress("recepient1@example.com"); //Recipient name is optional //Address to which recipient will reply $mail->addReplyTo("reply@yourdomain.com", "Reply"); //CC and BCC $mail->addCC("cc@example.com"); $mail->addBCC("bcc@example.com"); //Send HTML or Plain Text email $mail->isHTML(true); $mail->Subject = "Subject Text"; $mail->Body = "<i>Mail body in HTML</i>"; $mail->AltBody = "This is the plain text version of the email content"; try { $mail->send(); echo "Message has been sent successfully"; } catch (Exception $e) { echo "Mailer Error: " . $mail->ErrorInfo; }
بدون دیدگاه