ارسال ایمیل به زبان 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
این چند وابستگی را برای ما نصب می کند.
-
PHPMailer – کتابخانه ای که برای ارسال ایمیل از آن استفاده خواهیم کرد.
-
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 ارسال کنید!