برنامه نویسی

ارسال ایمیل به زبان PHP با PHPMailer

معرفی

به این آموزش در مورد نحوه ارسال ایمیل با استفاده از PHP خوش آمدید! ارتباط کلیدی است و ایمیل ها بخش مهمی از حفظ ارتباط با کاربران شما هستند. در این مقاله فرآیند ارسال ایمیل با استفاده از PHP و PHPMailer – کتابخانه ای قدرتمند برای ارسال ایمیل در PHP را بررسی خواهیم کرد. همچنین نحوه پیکربندی PHPMailer را برای استفاده از SMTP که رایج‌ترین روش ارسال ایمیل در وب است، توضیح خواهیم داد.

ما می دانیم که تنظیم ایمیل ها می تواند دلهره آور باشد، اما نگران نباشید! ما شما را در هر مرحله به شیوه‌ای دوستانه و حرفه‌ای راهنمایی می‌کنیم و اطمینان حاصل می‌کنیم که همه چیزهایی را که برای شروع نیاز دارید در اختیار دارید. به عنوان یک امتیاز اضافی، نحوه استفاده از متغیرهای محیطی را در این پروژه به شما نشان خواهیم داد – تکنیکی مفید برای ذخیره ایمن اطلاعات حساس مانند رمزهای عبور و کلیدهای API.

بنابراین چه مبتدی یا یک توسعه‌دهنده باتجربه، بیایید وارد آن شویم و نحوه ارسال ایمیل با PHP را یاد بگیریم!

الزامات

برای دنبال کردن این آموزش، باید موارد زیر را روی رایانه خود نصب کنید:

برپایی

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

$ git clone https://github.com/peteradeojo/sending-mails-with-phpmailer.git
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس به فهرست پروژه بروید و وابستگی ها را با استفاده از Composer نصب کنید.

$ cd sending-mails-with-phpmailer
$ composer install
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این چند وابستگی را برای ما نصب می کند.

  1. PHPMailer – کتابخانه ای که برای ارسال ایمیل از آن استفاده خواهیم کرد.

  2. DotEnv – یک کتابخانه محبوب که به ما امکان می دهد از متغیرهای محیطی در پروژه خود استفاده کنیم.

نکته عالی! قبل از اینکه فرآیند ارسال ایمیل را ادامه دهیم، باید a را ایجاد کنیم .env فایل در دایرکتوری ریشه پروژه ما. این فایل حاوی متغیرهای محیطی است که ما در طول پروژه از آنها استفاده خواهیم کرد، مانند اعتبارنامه SMTP و آدرس های گیرنده ایمیل.

برای بارگذاری .env فایل، ما از آن استفاده خواهیم کرد Dotenv\Dotenv کلاس ما تماس خواهیم گرفت load() روش بارگذاری محتویات .env در پروژه ما فایل کنید برای ساده‌تر کردن کارها، توصیه می‌کنیم محتویات را کپی کنید .env.example فایل را در .env فایل.

به این ترتیب، شما یک الگو برای متغیرهای محیطی مورد نیاز خود خواهید داشت و می توانید مقادیر مناسب برای پروژه خود را پر کنید. با انجام این کار، ما آماده خواهیم بود تا به مرحله بعدی برویم و شروع به ارسال ایمیل با PHPMailer کنیم.

ارسال ایمیل با PHPMailer

ابتدا به دایرکتوری اصلی پروژه ما در ویرایشگر متن خود بروید و یک فایل جدید به نام ایجاد کنید index.php.

در مرحله بعد، ما باید به آن نیاز داشته باشیم vendor/autoload.php فایلی که هنگام نصب وابستگی های خود به طور خودکار توسط Composer ایجاد شد. این فایل شامل تمام وابستگی هایی است که ما نصب کرده ایم و به ما امکان می دهد از آنها در پروژه خود استفاده کنیم.

برای انجام این کار، خط کد زیر را در بالای فایل index.php خود اضافه می کنیم:

<?php

require_once 'vendor/autoload.php';
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این کد شامل فایل autoload.php واقع در پوشه فروشنده پروژه ما خواهد بود. با انجام این کار، ما می توانیم از PHPMailer و هر وابستگی دیگری که با استفاده از Composer نصب کرده ایم استفاده کنیم.

استفاده از متغیرهای محیطی – می توانید از این قسمت رد شوید

استفاده از متغیرهای محیطی بهترین روش برای محافظت از اطلاعات حساس مانند اعتبارنامه ها از قرار گرفتن در معرض کنترل منبع است. برای استفاده از متغیرهای محیطی در پروژه خود، ابتدا باید آن را بارگذاری کنیم .env فایل.

برای این کار می توانیم از Dotenv\Dotenv کلاس و تماس بگیرید createImmutable() متد برای ایجاد یک نمونه جدید از کلاس. ما در عبور خواهیم کرد __DIR__ ثابت به عنوان آرگومان برای تعیین دایرکتوری فعلی به عنوان دایرکتوری پایه برای پروژه ما.

// ... (require autoload.php omitted for brevity)

$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();

$username = $_ENV['USERNAME'];

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

با افزودن خطوط زیر به بالای فایل index.php خود، کلاس های لازم را برای PHPMailer وارد کنید:

// Import PHPMailer classes and exceptions
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس، می توانیم با بقیه کدهای موجود در ما ادامه دهیم index.php فایل:

// ... (require autoload.php omitted for brevity)


// Create a new instance of PHPMailer
$mail = new PHPMailer(true);

try {
    //Server settings
    $mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
    $mail->isSMTP(); //Send using SMTP
    $mail->Host = $_ENV['SMTP_HOST']; //Set the SMTP server to send through
    $mail->SMTPAuth = true; //Enable SMTP authentication
    $mail->Username = $_ENV['SMTP_USERNAME']; //SMTP username
    $mail->Password = $_ENV['SMTP_PASSWORD']; //SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable SSL encryption
    $mail->Port = $_ENV['SMTP_PORT']; //TCP port to connect to, use 587 for `PHPMailer::ENCRYPTION_STARTTLS` above

    //Recipients
    $mail->setFrom('from@example.com', 'Mailer');
    $mail->addAddress('johndoe@example.com', 'John Doe'); //Add a recipient

    //Content
    $mail->isHTML(true); //Set email format to HTML
    $mail->Subject = 'Here is the subject';
    $mail->Body = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

را تنظیم کردیم SMTPDebug دارایی به SMTP::DEBUG_SERVER برای فعال کردن خروجی اشکال زدایی مفصل، که برای آزمایش و عیب یابی مفید است.

را تنظیم کردیم isSMTP ویژگی true برای نشان دادن اینکه ما ایمیل را با استفاده از SMTP ارسال خواهیم کرد.

سپس سرور SMTP را برای ارسال، اعتبارنامه احراز هویت SMTP و تنظیمات رمزگذاری تنظیم می کنیم. این مقادیر از قسمت بارگذاری می شوند .env فایل با استفاده از $_ENV آرایه ابرجهانی

در مرحله بعد، گیرندگان ایمیل را با استفاده از setFrom و addAddress مواد و روش ها.

قالب ایمیل را با استفاده از روش isHTML روی HTML تنظیم می کنیم و سپس موضوع و متن ایمیل را با استفاده از آن تنظیم می کنیم Subject، Body، و AltBody خواص

در نهایت، ما به send روش ارسال ایمیل اگر ایمیل با موفقیت ارسال شود، یک پیام برای کاربر ارسال می کنیم. اگر خطایی وجود داشته باشد، یک پیام با اطلاعات خطا ارسال می کنیم.

امیدوارم این به شما کمک کند با استفاده از PHPMailer ایمیل‌هایی را به زبان PHP ارسال کنید!

نوشته های مشابه

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

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

دکمه بازگشت به بالا