ما هو PHPMailer ولماذا تحتاجه؟
PHPMailer هي واحدة من أشهر وأقوى المكتبات لإرسال رسائل البريد الإلكتروني بلغة PHP. توفر واجهة بسيطة ومرنة للعمل مع بروتوكولات SMTP وPOP3 وIMAP. على عكس الدالة القياسية mail() في PHP، يقدم PHPMailer العديد من المزايا:
- دعم مصادقة SMTP — إرسال آمن عبر خوادم بريد خارجية (Gmail، Yahoo، Outlook، أو خادم SMTP خاص بك).
- العمل مع رسائل HTML — إنشاء رسائل جميلة ومنسقة تحتوي على صور وتنسيقات.
- المرفقات — إمكانية إرفاق ملفات من أي نوع.
- دعم UTF-8 — التعامل الصحيح مع اللغة العربية واللغات الأخرى.
- الحماية من حقن الرؤوس — أمان تطبيقك.
- دعم ترميزات متعددة — Base64، Quoted-Printable وغيرها.
- دعم CC و BCC — نسخ مخفية وواضحة.
تُستخدم هذه المكتبة في آلاف المشاريع حول العالم، بما في ذلك أنظمة إدارة المحتوى مثل WordPress وDrupal وJoomla. إذا كنت بحاجة لإرسال رسائل بريد إلكتروني من تطبيق PHP — سواء كانت إشعارات تسجيل، إعادة تعيين كلمة المرور، نشرات إخبارية، أو عروض تجارية — فإن PHPMailer سيكون أداتك التي لا غنى عنها.
تركيب PHPMailer
يتم تركيب PHPMailer عبر Composer — مدير الحزم الخاص بـ PHP. إذا لم يكن لديك Composer بعد، قم بتثبيته من الموقع الرسمي getcomposer.org.
افتح الطرفية (Terminal) في المجلد الجذري لمشروعك ونفّذ الأمر التالي:
composer require phpmailer/phpmailer
بعد التثبيت الناجح، سيظهر في مشروعك مجلد vendor وملف composer.json. لتضمين المكتبة في سكريبت PHP، استخدم أداة التحميل التلقائي الخاصة بـ Composer:
require 'vendor/autoload.php';
إذا كنت لا تستخدم Composer، يمكنك تنزيل المكتبة يدويًا من GitHub وتضمينها عبر require_once، لكن يُوصى بشدة باستخدام Composer لإدارة التبعيات تلقائيًا.
بداية سريعة مع مثال برمجي
لنرسل أول بريد إلكتروني باستخدام PHPMailer. في هذا المثال، سنستخدم خادم SMTP الخاص بـ Gmail. تأكد من تفعيل الوصول للتطبيقات الأقل أمانًا أو استخدام كلمة مرور التطبيق (App Password) للمصادقة الثنائية.
<?php
// تضمين أداة التحميل التلقائي لـ Composer
require 'vendor/autoload.php';
// استيراد كلاسات PHPMailer
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
// إنشاء كائن PHPMailer
$mail = new PHPMailer(true);
try {
// إعدادات الخادم
$mail->SMTPDebug = SMTP::DEBUG_OFF; // إيقاف التصحيح (للإنتاج)
$mail->isSMTP(); // استخدام SMTP
$mail->Host = 'smtp.gmail.com'; // خادم SMTP
$mail->SMTPAuth = true; // تفعيل المصادقة
$mail->Username = 'your_email@gmail.com'; // بريدك الإلكتروني
$mail->Password = 'your_password'; // كلمة مرورك أو كلمة مرور التطبيق
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // تشفير SSL
$mail->Port = 465; // منفذ SSL
// المرسل والمستلم
$mail->setFrom('your_email@gmail.com', 'اسمك');
$mail->addAddress('recipient@example.com', 'اسم المستلم');
// محتوى الرسالة
$mail->isHTML(true); // تعيين تنسيق HTML
$mail->Subject = 'رسالة اختبار من PHPMailer';
$mail->Body = '<h1>مرحباً!</h1><p>هذه رسالة اختبار تم إرسالها باستخدام <b>PHPMailer</b>.</p>';
$mail->AltBody = 'مرحباً! هذه رسالة اختبار