اتصال به ایمیل‌سرور در برنامه‌های PHP


پروژه و کدهای مورد استفاده در ویدیوی فوق در اینجا قابل مشاهده و دسترسی هستند.

برای استفاده از سرویس ایمیل در برنامه‌های PHP، می‌توانید از پکیج phpmailer استفاده کنید که بایستی با دستور زیر، آن را در پروژه خود، نصب کنید:

کپی
composer require phpmailer/phpmailer

پس از آن، کافیست تا طبق مستندات SMTP، یک دسترسی SMTP و طبق مستندات افزودن نشانی، یک نشانی برای ایمیل‌سرور خود، ایجاد کنید. در نهایت نیز، بایستی اطلاعات مربوط به ایمیل‌سرور خود را به متغیرهای محیطی برنامه خود، اضافه کنید؛ به عنوان مثال:

کپی
MAIL_HOST=smtp.c1.liara.email
MAIL_PORT=587
MAIL_SECURITY=tls
MAIL_USER=my-app
MAIL_PASSWORD=87b9307a-dae9-410e-89a2-e77de60e4885

با تنظیم MAIL_SECURITY=tls، می‌توانید به‌صورت امن اقدام به ارسال ایمیل‌های تراکنشی کنید.

در نهایت می‌توانید در پروژه‌ی خود مانند مثال زیر عمل کرده و با استفاده از دسترسی SMTP سرویس ایمیل لیارا، اقدام به ارسال ایمیل‌های تراکنشی کنید:

کپی
<?php

use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerSMTP;
use PHPMailerPHPMailerException;

require_once "vendor/autoload.php";
$dotenv = DotenvDotenv::createImmutable(__DIR__);
$dotenv->load();

$mailHost = $_ENV['MAIL_HOST'];
$mailPort = $_ENV['MAIL_PORT'];
$mailUser = $_ENV['MAIL_USER'];
$mailPassword = $_ENV['MAIL_PASSWORD'];
$mailSecurity = $_ENV['MAIL_SECURITY'];

$mail = new PHPMailer(true);

$mail->isSMTP();
$mail->SMTPAuth   = true;
$mail->SMTPSecure = $mailSecurity;
$mail->Port       = $mailPort;
$mail->Host       = $mailHost;
$mail->Username   = $mailUser;
$mail->Password   = $mailPassword;
$mail->CharSet    = "UTF-8";

$mail->From     = "your email";
$mail->FromName = "your email name";

$mail->addAddress("destination email", "destination name");
$mail->isHTML(false);

$mail->Subject = "Mailing with PHPMailer";
$mail->Body = "Congratulation";
$mail->AltBody = "Congratulation";

try {
    $mail->send();
    echo "Message has been sent successfully";
} catch (Exception $e) {
    error_log("Mailer Error: $mail->ErrorInfo", 0);
}

مقدار فیلد From باید یکی از نشانی‌های اضافه شده در سرویس ایمیل باشد.