✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Надіслати електронну пошту за допомогою SMTP-сервера Gmail із PHP Script

92

Електронна пошта відіграє важливу роль на веб-сайті. Кожному веб-сайту зазвичай потрібно надсилати електронні листи користувачам. Ці електронні листи можна надіслати зі сторінки зв’язку з нами, бюлетеня, реєстраційної форми тощо.

PHP надає mail()функцію, яка використовується для надсилання електронного листа. Але при використанні mail()методу існують обмеження. Ви не можете надсилати електронні листи з локального сервера розробки. Іншим недоліком є ​​висока ймовірність того, що ваша електронна пошта потрапить у спам.

У більшості випадків mail()метод навіть не надсилає електронного листа. Це може бути через неправильну конфігурацію сервера або щось інше.

Щоб вийти з цих проблем або обмежень, можна використовувати SMTP-сервер для надсилання електронних листів.

У цій статті ми вивчаємо, як використовувати PHPMailer та SMTP-сервер Gmail для надсилання електронних листів.

Встановлення

Спочатку потрібно встановити бібліотеку PHPMailer у свій проект. Рекомендований спосіб встановлення бібліотеки – через Composer.

Відкрийте командний рядок у кореневому каталозі проекту та запустіть команду нижче.

composer require phpmailer/phpmailer

Оскільки ми використовуємо Gmail SMTP, вам потрібно змінити деякі налаштування свого облікового запису Google. Увійдіть у свій обліковий запис Google і натисніть на Мій рахунок. Перейшовши на сторінку «Мій обліковий запис», натисніть «Безпека». Прокрутіть униз, і ви знайдете налаштування "Менш безпечний доступ до програми". Встановіть його на ON.

Надіслати електронну пошту за допомогою SMTP-сервера Gmail із PHP Script

Після цього нам потрібно написати код, який надсилає електронне повідомлення за допомогою бібліотеки PHPMailer та SMTP-сервера Gmail.

PHP-скрипт для надсилання електронної пошти за допомогою SMTP-сервера Gmail

Відкрийте свій PHP-файл, де вам потрібно написати код електронної пошти. Наприклад, я припускаю, що у вас є sendemail.phpфайл у кореневому каталозі.

sendemail.php

<?php //Import PHPMailer classes into the global namespace use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException;   require_once 'vendor/autoload.php';   $mail = new PHPMailer(true); ?>

У наведеному вище коді я включив середовище бібліотеки PHPMailer у файл PHP.

Далі, для надсилання електронних листів за допомогою PHPMailer користувачеві потрібно передати адресу SMTP-сервера Gmail, SMTP-порт для Gmail та автентифікацію SMTP (що є нічим іншим, як вашим іменем користувача та паролем облікового запису Google).

$mail->isSMTP(); $mail->Host = 'smtp.googlemail.com'//gmail SMTP server $mail->SMTPAuth = true; $mail->Username = 'GMAIL_USERNAME';   //username $mail->Password = 'GMAIL_PASSWORD';   //password $mail->SMTPSecure = 'ssl'; $mail->Port = 465;                    //SMTP port

Це воно! Ви закінчили з конфігурацією. Тепер вам слід продовжувати надсилати електронне повідомлення користувачеві.

$mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME'); $mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');   $mail->isHTML(true);   $mail->Subject = 'Email subject'; $mail->Body    = '<b>Email Body</b>';   $mail->send(); echo 'Message has been sent';

Замініть заповнювачі фактичними значеннями. Запустіть цей файл у браузері, і ваша електронна пошта повинна надійти на електронну адресу одержувача.

Надсилання вкладень в електронному листі

Використовуючи бібліотеку PHPMailer, можна надіслати одне або кілька вкладень в електронному листі. Все, що вам потрібно зробити, це передати шлях до вкладених файлів методу addAttachmentнаступним чином.

$mail->addAttachment(__DIR__. '/attachment1.png'); $mail->addAttachment(__DIR__. '/attachment2.jpg');

Наш остаточний код такий.

sendemail.php

<?php use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException;   require_once "vendor/autoload.php"; require_once "constants.php";   $mail = new PHPMailer(true);   try {     $mail->isSMTP();     $mail->Host = 'smtp.googlemail.com'//gmail SMTP server     $mail->SMTPAuth = true;     $mail->Username = GMAIL_USERNAME;   //username     $mail->Password = GMAIL_PASSWORD;   //password     $mail->SMTPSecure = 'ssl';     $mail->Port = 465;                    //smtp port        $mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');     $mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');       $mail->addAttachment(__DIR__. '/attachment1.png');     $mail->addAttachment(__DIR__. '/attachment2.png');       $mail->isHTML(true);     $mail->Subject = 'Email Subject';     $mail->Body    = '<b>Email Body</b>';       $mail->send();     echo 'Message has been sent'; } catch (Exception $e) {     echo 'Message could not be sent. Mailer Error: '. $mail->ErrorInfo; } ?>

Сподіваюся, ви розумієте, як надсилати електронну пошту за допомогою SMTP-сервера Gmail зі сценарію PHP. Будь ласка, поділіться своїми думками та пропозиціями в коментарі нижче.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі