php

پلتفرم PHP

(PHP Platform)

ارسال ایمیل

در صورتی که تمایلی به خواندن آموزش متنی ندارید می‌توانید ویدیوی آموزشی زیر ‌را مشاهده کنید.

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

برای استفاده از سرویس ایمیل در برنامه‌های PHP باید پس از ایجاد سرویس ایمیل، در ابتدا کتابخانه PHPMailer را با اجرای دستور زیر نصب کنید.

composer require phpmailer/phpmailer

در قدم بعد باید اطلاعات دسترسی SMTP را طبق مستندات تنظیم متغیرها در تنظیمات برنامه اضافه کنید.

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

اگر که از فایل env. برای بارگذاری متغیرهای محیطی در پروژه اصلی استفاده می‌کنید؛ می‌توانید با استفاده از دستور زیر، پکیج DotEnv را نصب کنید.

توجه داشته باشید که مقادیر MAIL_USER و MAIL_PASSWORD در هر سرویس ایمیل ایجاد شده متفاوت است بنابراین باید آن‌ها را با مقادیر ارائه شده در تنظیمات سرویس ایمیل‌تان جایگزین کنید.
composer require vlucas/phpdotenv

در نهایت می‌توانید در پروژه‌ی خود مانند مثال زیر عمل کرده و با استفاده از دسترسی SMTP سرویس ایمیل لیارا و تنظیم MAIL_SECURITY=tls، به‌صورت امن اقدام به ارسال ایمیل‌های تراکنشی کنید.

توجه داشته باشید که مقدار From باید یکی از نشانی‌های اضافه شده در سرویس ایمیل باشد.
<?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->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);
}

همچنین برای کسب اطلاعات بیشتر در رابطه با نحوه‌ی استفاده از کتابخانه PHPMailer می‌توانید به مستندات این کتابخانه مراجعه کنید.

متوجه شدم، برو گام بعدی!
;