مقدمه
ارسال ایمیل از طریق وبسایتهای PHP به مشتریان و مخاطبین، پیچیدگیهای خاص خود را دارد. برای سادهتر کردن این فرایند، از ابزارهایی مانند PHPMailer استفاده میشود. در واقع، PHPMailer یک کتابخانه قدرتمند PHP است که بسیاری از افزونههای وردپرسی مرتبط با ایمیل، مانند WP Mail SMTP، از آن بهره میبرند.
در این مقاله، از سری آموزشهای هاست در بلاگ ابردیجیتال، به معرفی PHPMailer، روش نصب و استفاده از آن و همچنین نمونه کدهای مورد نیاز میپردازیم.
PHPMailer چیست؟
PHPMailer یک کتابخانه متنباز PHP است که امکان ارسال ایمیل بدون نیاز به نصب وردپرس یا افزونههای جانبی را فراهم میکند. با استفاده از این کتابخانه میتوان ایمیلهای ساده یا HTML، ضمیمهها، CC و BCC را به راحتی مدیریت کرد.
روش نصب PHPMailer
در این آموزش، نصب PHPMailer مطابق با دسترسی کاربران سطح User در هاستهای ابری انجام میشود. در این حالت، نیازی به استفاده از Composer نیست و کافی است فایلهای کتابخانه را از گیتهاب رسمی دانلود و روی هاست آپلود کنیم.
دانلود فایل PHPMailer
1. به لینک رسمی کتابخانه مراجعه کنید:
https://github.com/PHPMailer/PHPMailer
2. روی کلید سبز رنگ Code کلیک کرده و گزینه Download ZIP را انتخاب کنید.

این فایل فشرده حاوی تمام فایلهای لازم برای استفاده از PHPMailer است.
بارگذاری فایل روی هاست
۱. ورود به کنترل پنل
وارد File Manager در کنترل پنل هاست خود شوید (CPanel یا DirectAdmin).

۲. ایجاد پوشه برای PHPMailer
در مسیر اصلی هاست (معمولاً `public_html`) یک دایرکتوری با نام `phpmailer` ایجاد کنید.

۳. آپلود و استخراج فایل

* فایل ZIP دانلود شده را در پوشه `phpmailer` آپلود کنید.
* با کلیک راست روی فایل، گزینه Extract را انتخاب کرده و فایلها را از حالت فشرده خارج کنید.
* بعد از اطمینان از استخراج کامل، فایل ZIP را حذف کنید.
نکته: این کار باعث آزاد شدن فضای هاست و جلوگیری از هرگونه خطای احتمالی میشود.

اضافه کردن PHPMailer به کد PHP
1. یک فایل PHP جدید ایجاد کنید (مثلاً `mailer.php`) در مسیر `public_html`.
2. فایلهای زیر را به کد خود اضافه کنید:

require 'phpmailer/src/Exception.php'; require 'phpmailer/src/PHPMailer.php'; require 'phpmailer/src/SMTP.php';
3. سپس از کلاسهای PHPMailer استفاده کنید:
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception;
با این مراحل، آبجکت PHPMailer آماده استفاده در کدهای شماست.
تنظیمات اولیه PHPMailer
ایجاد آبجکت PHPMailer
$mail = new PHPMailer(true); $mail->IsSMTP(); $mail->Host = 'yourmaildomain.com'; $mail->SMTPSecure = 'none'; // یا 'tls' $mail->Port = 587; $mail->SMTPDebug = 1; $mail->SMTPAuth = true;
#فعالسازی نمایش خطاهای PHP (اختیاری)
ini_set('display_errors', 1);
error_reporting(E_ALL);
تعریف اکانت ایمیل
1. وارد Email Accounts در سی پنل شوید و یک اکانت ایمیل بسازید.
2. مشخصات اکانت را در PHPMailer وارد کنید:
$mail->Username = 'youremail@example.com'; $mail->Password = 'YourEmailPassword';
تعیین فرستنده و گیرنده
$mail->From = "youremail@example.com";
$mail->FromName = "Your Name";
// ایمیل گیرنده
$mail->addAddress("recipient1@example.com", "Recipient Name");
$mail->addAddress("recipient2@example.com", "Recipient Name 2");
// ایمیل CC و BCC
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
ارسال ایمیل با محتوای HTML و متن ساده
$mail->isHTML(true); $mail->Subject = "عنوان ایمیل"; $mail->Body = "<i>سلام! این یک ایمیل آزمایشی است.</i>"; $mail->AltBody = "این متن جایگزین برای ایمیلهایی است که HTML را نمایش نمیدهند.";
افزودن فایل ضمیمه و زبان
$mail->addAttachment("file.txt", "File.txt");
$mail->addAttachment("images/logo.png");
// تنظیم زبان
$mail->setLanguage("fa");
// تنظیم کاراکتر برای فارسی
$mail->CharSet = 'UTF-8';
ارسال ایمیل و دریافت پیام موفقیت یا خطا
try {
$mail->send();
echo 'پیام با موفقیت ارسال شد';
} catch (Exception $e) {
echo "ارسال ایمیل با خطا مواجه شد: {$mail->ErrorInfo}";
}
#نمونه کامل فایل `mailer.php`
<?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
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->Host = 'yourmaildomain.com';
$mail->SMTPSecure = 'none';
$mail->Port = 587;
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
// مشخصات اکانت ایمیل
$mail->Username = 'youremail@example.com';
$mail->Password = 'YourEmailPassword';
// فرستنده ایمیل
$mail->From = "youremail@example.com";
$mail->FromName = "Your Name";
// گیرنده ایمیل
$mail->addAddress("recipient@example.com", "Recipient Name");
// محتوا
$mail->isHTML(true);
$mail->Subject = "عنوان ایمیل";
$mail->Body = "<i>سلام! این یک ایمیل آزمایشی است.</i>";
$mail->AltBody = "این متن جایگزین برای ایمیلهایی است که HTML را نمایش نمیدهند.";
// ارسال ایمیل
try {
$mail->send();
echo "پیام با موفقیت ارسال شد";
} catch (Exception $e) {
echo "ارسال ایمیل با خطا مواجه شد: {$mail->ErrorInfo}";
}
?>
جمعبندی
استفاده از PHPMailer یکی از روشهای مطمئن و مناسب برای ارسال ایمیل در وبسایتهای PHP است. با چند خط کد و تنظیم ساده میتوان ایمیلهای HTML، متن ساده، ضمیمهها و گیرندههای مختلف را مدیریت کرد.
این کتابخانه، تجربه کاربری حرفهای و انعطافپذیری بالایی برای ارسال ایمیلها فراهم میکند و ابزار اصلی بسیاری از افزونهها و سیستمهای مدیریت ایمیل در PHP است.






قوانین ارسال دیدگاه
لطفاً در ارسال دیدگاه از کلمات مناسب استفاده کنید. ارسال اسپم ممنوع است.