راهنمای استفاده از PHPMailer در هاست‌های ابری پارس‌پک

معرفی Php Mailer و نحوه استفاده از آن
Avatar
نویسنده: سانیا عبدی‌پور
سه‌شنبه 20 خرداد 1404
مطالعه: ۸ دقیقه ۰ نظر ۲۹ بازدید

ارسال ایمیل از طریق وب‌سایت‌های php به مشتریان و مخاطبین، پیچیدگی‌های خاص خود را دارد. به همین دلیل برای سهولت این فرایند، از ابزارهایی مانند php mailer استفاده می‌شود. در واقع php mailer یک کتابخانه قدرتمند در php است که حتی خیلی از افزونه‌های وردپرسی مربوط به ایمیل مثل wp mail smtp از این کتابخانه استفاده می‌کند. در ادامه این مقاله از بخش آموزش‌های هاست در بلاگ پارس‌پک به معرفی PHPMailer و روش نصب و استفاده از آن می‌پردازیم. همچنین کدهای موردنیاز برای استفاده از آن را بررسی می‌کنیم.

php mailer چیست؟

php mailer یک کتابخانه متن‌باز است که به افراد کمک می‌کند که بدون نیاز به نصب وردپرس و افزونه‌های مختلف (از جمله wp mail smtp) اقدام به ارسال ایمیل نمایند. در ادامه روش نصب و راه اندازی این کتابخانه را روی هاست ابری با هم بررسی می‌کنیم.

روش نصب php mailer

این آموزش مطابق با سطح دسترسی هاست‌های ابری است. با توجه به اینکه اکثر هاست‌ها بدون دسترسی SSH ارائه می‌شوند، کاربران تنها با دسترسی سطح user به هاست می‌توانند از این کتابخانه استفاده کنند. در این روش، نیازی به استفاده از composer جهت نصب پکیج نیست. تنها کافی است به گیت هاب رسمی این کتابخانه دسترسی داشته باشید و فایل فشرده حاوی فایل‌های کتابخانه را دانلود نمایید.

دانلود فایل php mailer:

فایل این کتابخانه را از لینک زیر دانلود کنید:
https://github.com/PHPMailer/PHPMailer
کافی است پس از ورود به این لینک، روی کلید سبز رنگ Code کلیک کرده و Download Zip را بزنید تا فایل فشرده کل کتابخانه در سیستم شما دانلود شود.

دانلود فایل php mailer
روش دانلود و اجرای php mailer

ورود به کنترل پنل و بارگذاری فایل:

سپس باید این فایل را در هاست خود بارگذاری نمایید. به این منظور، وارد قسمت FIle Manager در هاست خود شوید (Cpanel یا Directadmin) و در مسیر مورد نظر این فایل را بارگذاری نمایید. در این مثال، در فایل public_html یک دایرکتوری با نام phpmailer ایجاد و فایل را در آن آپلود کنید.

بارگذاری فایل phpmailer در کنترل پنل
ورود به کنترل پنل و بارگذاری فایل

Extract کردن فایل:

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

Extract کردن فایل Php Mailer
مرحله Extract کردن فایل Php Mailer

حذف فایل Zip:

حالا می‌توانید فایل زیپ را به‌طور کامل حذف کنید.

حذف فایل Php Mailer
حذف فایل زیپ phpmailer از کنترب پنل

اضافه کردن فایل php در کد اسکریپت:

برای استفاده از این کتابخانه در کد اسکریپت، با ایجاد یک فایل php دلخواه، با آدرس‌دهی درست، فایل‌های Exception.php ، PHPMailer.php و SMTP.php را به کد اسکریپت اضافه کنید.

اضافه کردن فایل php در کد اسکریپت
افزودن فایل به کد اسکریپت

در این مثال، نام فایل اسکریپت mailer.php است و در مسیر اصلی هاست یعنی public_html ایجاد شده است. مسیر دقیق قرار گرفتن این فایل اسکریپت و محتوای کتابخانه phpmailer را در دایرکتوری با همین نام می‌توان در این تصویر مشاهده کرد.

معرفی کدهای موردنیاز برای استفاده از mailer.php

در فایل mailer.php با دستور require فایل‌های کتابخانه را به این صورت مشخص و در کد اسکریپت تعریف کنید.

require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';
require 'phpmailer/src/SMTP.php';

در نهایت از عبارت use جهت استفاده از کلاس PHPMailer به این صورت استفاده کنید.

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

با انجام مراحل بالا، امکان استفاده از آبجکت PHPMailer در کدهای اسکریپت فراهم می‌شود. در ادامه مواردی که باید تعریف شوند را مشاهده کنید:

$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->Host = '[email protected]';
$mail->SMTPSecure = 'none';
$mail->Port = 587;
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;

در خط اول یک آبجکت از PHPMailer ایجاد کرده و سایر مقادیر از جمله Host ،SMTPSecure Port و SMTPAuth به این شکل مقداردهی کنید.
در نظر داشته باشید که مقدار Host باید برابر با آدرسی باشد که مستقیما به آی‌پی هاست شما اشاره کند. به‌صورت پیشفرض در هاست‌های پارس‌پک، رکورد mail به همین صورت است.
همچنین جهت ارسال ایمیل از پروتکل SMTP با پورت 587 استفاده می‌شود. مقدار SMTPAuth را هم برابر با true بگذارید تا احراز هویت حتما با اکانت ایمیل خودتان انجام شود.
برای جلوگیری از بروز خطا، مقدار SMTPSecure را برابر none قرار می‌دهیم. همچنین در صورت لزوم می‌توانید این مقدار را برابر با tls قرار دهید.
به کد SMTPDebug هم مقدار ۱ بدهید تا امکان نمایش خطاهای احتمالی را فعال کنید. با فعال‌سازی این گرینه بررسی و رفع خطاها آسان‌تر خواهد شد.

 

نکته: برای فعال‌سازی امکان نمایش خطای کلی در فایل php این مقادیر را هم می‌توانید در ابتدای کد اسکریپت تعریف نمایید.

ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

سپس نیاز است یک اکانت ایمیل ساخته و مشخصات آن را روی این آبجکت تعریف نمایید. بدین منظور از داخل سی پنل، وارد قسمت Email Accounts شده و اکانت ایمیل مورد نظر را ایجاد کنید.

$mail->Username = '[email protected]';
$mail->Password = 'YourEmailAccountPassword';

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

$mail->From = "[email protected]";
$mail->FromName = "Parspack";

توجه داشته باشید که حتما آدرس ایمیل را برابر اکانت ایمیل خود وارد کنید، در غیر این‌صورت ایمیل شما به عنوان اسپم شناسایی شده و ممکن است ارسال آن با مشکل مواجه شود.
آدرس گیرنده را هم در قسمت addAddress تعریف کنید. (امکان تعریف چند ایمیل مقصد وجود دارد).

$mail->addAddress("[email protected]", "Pars Pack Gmail");
$mail->addAddress('parspackmail@yahoot', 'Pars Pack Yahoo');

همچنین می‌توان بخش‌های cc , Bcc در ایمیل را با کدهای زیر تعریف کرد:

$mail->addCC('[email protected]');
$mail->addBCC('[email protected]');

با دستور زیر می‌توان کدهای HTML را در محتوای ایمیل قرار داد. با این کار، ایمیل شما به شکل و شمایل دلخواه به دست مخاطب می‌رسد.

$mail->isHTML(true);

دستورهای زیر هم شامل عنوان و محتوای ایمیل هستند.

$mail->Subject = "This is from PHP Mailer - Parspack";
$mail->Body = "<i>Hi there, Thank you.</i>";

همچنین دستور زیر زمانی به کار می‌آید که کاربر ایمیل را با کد HTML دریافت نکنند. در واقع متن قرار داده شده در بخش AltBody محتوایی است که به جای کد HTML به کاربر نمایش‌داده می‌شود.

$mail->AltBody = "This is the plain text version of the email content";

به منظور افزودن فایل ضمیمه هم می‌توان از کد‌های زیر استفاده نمود:

$mail->addAttachment("file.txt", "File.txt");
$mail->addAttachment("images/pasrpacklogo.png");

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

$mail->setLanguage("fa");

 

نکته: اگر از زبان فارسی در متن ایمیل استفاده می‌کنید، به منظور جلوگیری از به‌هم‌ریختگی حروف و نمایش کاراکترهای نامفهوم، حتما از دستور زیر استفاده کنید.

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

در نهایت ایمیل موردنظر را با دستور زیر ارسال کنید.

$mail->send();

با دستور زیر هم می‌توان پیامی مبنی بر ارسال موفقیت‌آمیز ایمیل یا بروز خطا در فرایند ارسال، دریافت کرد.

echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";

در نهایت محتوای فایل اسکریپت به این صورت خواهد شد:

<?php
require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';
require 'phpmailer/src/SMTP.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//PHPMailer Object
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->Host = '[email protected]';
$mail->SMTPSecure = 'none';
$mail->Port = 587;
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;

//Email Account
$mail->Username = '[email protected]';
$mail->Password = 'EmailAccountPassword';

//From email address and name
$mail->From = "[email protected]";
$mail->FromName = "Parspack";

//To address and name
$mail->addAddress("[email protected]", "Pars Pack");

$mail->isHTML(true);
$mail->Subject = "This my first email from PHP Mailer";
$mail->Body = "<i>Hi there, Thank you.</i>";
$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent successfully";
}

جمع‌بندی

استفاده از PHPMailer یکی از راه‌های مطمئن و مناسب برای ارسال ایمیل در وب‌سایت‌های PHP است. همانطور که در این مقاله اشاره کردیم، با کمک چند خط دستور و کد HTML ساده می‌توان از امکانات متنوع این کتابخانه بهره‌مند شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


ارسال دیدگاه در وبلاگ پارس‌پک را مطالعه کرده و آن‌ها را می‌پذیرم.