آموزش ارسال ایمیل با phpmailer + نمونه کد

[short_link]
با استفاده از phpmailer میشه به صورت اختصاصی فرم تماس با ما یا هر فرم دیگه ای رو بسازید و در سایت استفاده کنید . دلیل اینکه از تابع mail() نمیشه استفاده کرد این هست که این افزونه در تقریبا تمام هاست ها به دلایل امنیتی غیرفعال شده و امکان استفاده از اون وجود نداره .

ارسال ایمیل با phpmailer

یکی از بهترین کتابخونه های php  که جایگزین ()mail باشه و بشه باهاش ایمیل ارسال کرد phpmailer  هست .این کتابخونه به‌راحتی در سیستم‌های مدیریت محتوایی (CMS) مانند وردپرس کار می‌کنه و مورد استفاده بسیاری از توسعه‌دهندگان PHP هست.

ارسال ایمیل با phpmailer

از جمله مزایای phpmailer:

  • می‌تونه انواع پیام‌های خطا را در هنگام عدم ارسال ایمیل با بیش از 40 زبان چاپ کنه
  • برای پشتیبانی از پروتکل SMTP و احراز هویت بر SSL و TLS توسعه یافته
  • می‌تونه یک ایمیل متنی جایگزین برای مشتریان ایمیل غیر HTML ارسال کنه
  • دارای یک انجمن توسعه‌دهنده بسیار فعال هست که باعث میشه ایمن و به روز باشه

 

کتابخونه phpmailer  رو می تونید از این لینک از گیت هاب به صورت فایل زیپ دانلود کنید .

دانلود phpmailer

بعد از دانلود در هر فولدری که قصد استفاده دارید آپلود می کنید. بعد از آپلود و اکسترکت کردن، همه چیز آماده استفاده از phpmailer  هست.

من فایل زیپ رو توی یه فولدر به نام contact آپلود و اکسترکت کردم و در کنار این فولدر فایلی رو برای ارسال پیام ایجاد کردم.

حالا کافیه که این چند خط کد رو برای شروع و استفاده از کلاس phpmailer  به فایل خودم اضافه کنم :

 

require 'contact/PHPMailer-master/src/PHPMailer.php';
require 'contact/PHPMailer-master/src/Exception.php';
require 'contact/PHPMailer-master/src/SMTP.php';
use PHPMailer\PHPMailer\PHPMailer;

در صورتی که بخواید با phpmailer ایمیل ارسال کنید اما از smtp استفاده نشه ممکنه با این ارور مواجه بشید

Mailer Error: Could not instantiate mail function

این خطا به این معنی هست که تابع mail  رو هاست شما غیرفعال شده و باید برای ارسال ایمیل از smtp  استفاده کنید

در ادامه یه کد خیلی ساده برای ارسال پیام تست و آیا اینکه اصلا این کدهای ما کار می کنه یا نه اضافه می کنیم و تست می کنیم .

$emailContent="این یک پیام تست می باشد";
$eml_to="[email protected]";
  try{
    $email = new PHPMailer(true);
    $email->CharSet = 'UTF-8';
    $email-> isSMTP(); # SMTP is enabled now.
    $email-> Host = 'mail.wordpresskar.com'; //smtp.gmail.com
    $email->SMTPDebug   = 2;
    $email->SetFrom('[email protected]', 'وردپرس کار');
    $email->isHTML(true);
    $email->Subject   = 'موضوع پیام ارسالی';
    $email->Body      = $emailContent;
    $email->AddAddress( $eml_to );  
    //$email->AddAttachment( $file_to_attach );
    $email->Send();
  }catch(phpmailerException $e){echo $e->errorMessage();}
  
}

 

با استفاده از این کد پیام ما به ایمیلی که تعیین کردیم ارسال میشه . به احتمال زیاد این ایمیل به فولدر اسپم خواهد رفت.

 

$email->CharSet = 'UTF-8';

توی این خط ما کاراکتر ست رو تنظیم می کنیم اگر این کد رو اضافه نکنیم متن و موضوع ایمیل به صورت کاراکترهای ناخوانا درمیان و قابل خوندن نیستن. اینطوری :

ناخوانا بودن ایمیل در phpmailer

ناخوانا بودن ایمیل در phpmailer

با استفاده از کد زیر دباگ رو فعال می کنیم تا اگر احیانا مشکلی بود بتونیم تشخیص بدیم و طبیعتا بعد از انجام کار و تست غیرفعال خواهد شد .

 

    $email->SMTPDebug   = 2;

با استفاده از کد زیر می تونیم ایمیل html ارسال کنیم و از رنگ، فونت و تصویر در ایمیل خودمون استفاده کنیم .

    $email->isHTML(true);

در صورتی که ایمیل گیرنده های دیگه ای هم داره می تونیم هدر ایمیل رو سفارشی کنیم و موارد زیر رو اضافه کنیم :

// از کجا داره ایمیل می فرستیم
$mail->setFrom('[email protected]', 'wordpresskar');

// جواب ایمیل به کجا بره
$mail->addReplyTo('[email protected]', 'wordpresskar');

$mail->addAddress('[email protected]', 'Tim');
$mail->addCC('[email protected]', 'Elena');
$mail->addBCC('[email protected]', 'Alex');

اگر تعداد بیشتری دریافت کننده ایمیل وجود داشته باشه می تونیم از کد زیر استفاده کنیم :

$mail->AddAddress('[email protected]', 'Person One');
$mail->AddAddress('[email protected]', 'Person Two');
// ..

//To make things easy, you should loop through an array to do this.

$recipients = array(
   '[email protected]' => 'Person One',
   '[email protected]' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddAddress($email, $name);
}

//Better yet, add them as Carbon Copy recipients.

$mail->AddCC('[email protected]', 'Person One');
$mail->AddCC('[email protected]', 'Person Two');
// ..

//To make things easy, you should loop through an array to do this.

$recipients = array(
   '[email protected]' => 'Person One',
   '[email protected]' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddCC($email, $name);
}
(0) دیدگاه برای این پست ثبت شده
دیدگاه خود را بفرستید
  1. اولین نفری باشید که دیدگاه خود را ثبت می کند!
« راهنمای اضافه کردن کد واتساپ برای وردپرس
بالانس منفی موجودی دکان و عدم برداشت وجه »
wefwegwegweg/wp-content/themes/future