WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Отправка электронной почты с помощью SMTP-сервера Gmail из сценария PHP

690

Электронная почта играет важную роль на сайте. Каждый веб-сайт обычно должен отправлять пользователям электронные письма. Эти электронные письма можно отправлять со страницы контактов, из рассылки новостей, регистрационной формы и т.д.

PHP предоставляет mail()функцию, которая используется для отправки электронной почты. Но есть ограничения при использовании mail()метода. Вы не можете отправлять электронную почту с локального сервера разработки. Другой недостаток заключается в высокой вероятности попадания вашего электронного письма в спам.

В большинстве случаев mail()метод даже не отправляет электронное письмо. Это может быть из-за неправильной конфигурации сервера или чего-то еще.

Чтобы избежать этих проблем или ограничений, можно использовать SMTP-сервер для отправки электронных писем.

В этой статье мы изучаем, как использовать PHPMailer и SMTP-сервер Gmail для отправки электронных писем.

Монтаж

Сначала вам нужно установить библиотеку PHPMailer в свой проект. Рекомендуемый способ установки библиотеки — через Composer.

Откройте командную строку в корневом каталоге вашего проекта и выполните следующую команду.

composer require phpmailer/phpmailer

Поскольку мы используем Gmail SMTP, вам необходимо изменить некоторые настройки в своей учетной записи Google. Войдите в свою учетную запись Google и нажмите «Моя учетная запись». Находясь на странице «Моя учетная запись», нажмите «Безопасность». Прокрутите вниз, и вы найдете настройки «Небезопасный доступ к приложениям». Установите его в положение ВКЛ.

Отправка электронной почты с помощью SMTP-сервера Gmail из сценария PHP

После этого нам нужно написать код, который отправляет электронное письмо с использованием библиотеки 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 для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее