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

Отправка электронной почты с помощью Mailjet (альтернатива SMTP-серверу Gmail) на PHP

150

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

SMTP-сервер Gmail – довольно популярный выбор среди разработчиков. Но есть 2 проблемы с использованием этого сервиса Google. Во-первых, вы не могли указать адрес отправителя при отправке электронного письма. Gmail установил ваш адрес электронной почты (идентификатор электронной почты Google) в качестве адреса отправителя. Во-вторых, вам нужно включить параметр «Разрешить менее безопасные приложения», который не рекомендуется Google.

Чтобы избежать этих ограничений, я нашел альтернативное решение для SMTP-сервера Gmail – Mailjet. Mailjet – это служба доставки электронной почты для команд маркетинга и разработчиков. Мы можем легко отправлять электронные письма с помощью Mailjet на PHP. Они предоставляют свой собственный API электронной почты для создания электронных писем. Вы также можете использовать их службу SMTP.

Начиная

Mailjet предоставляет квоту в 6000 бесплатных писем в месяц (200 писем в день). Для малого бизнеса этой бесплатной квоты достаточно. Если вашему бизнесу нужно больше писем, загляните на их страницу с ценами.

В процессе регистрации вам будет предложено выбрать способ отправки. В этом руководстве мы обсуждаем как API электронной почты, так и ретранслятор SMTP, поэтому сейчас выберите вариант API.

Отправка электронной почты с помощью Mailjet (альтернатива SMTP-серверу Gmail) на PHP

Следуйте следующим шагам. На экране ниже нажмите кнопку «Начать» в разделе для разработчиков.

Отправка электронной почты с помощью Mailjet (альтернатива SMTP-серверу Gmail) на PHP

Чтобы получить ключи API, перейдите в «Настройки учетной записи». На следующей странице в разделе REST API нажмите «Master API key & Sub API key management». Скопируйте ключ API и секретный ключ, которые потребуются на следующих шагах.

Отправка электронной почты с помощью Mailjet (альтернатива SMTP-серверу Gmail) на PHP

Mailjet позволяет нам установить адрес отправителя. В разделе «Отправители и домены» нажмите «Добавить домен или адреса отправителя» и на следующей странице добавьте адрес отправителя.

Отправка электронной почты с помощью Mailjet (альтернатива SMTP-серверу Gmail) на PHP

Если вы устанавливаете адрес, отличный от электронной почты вашей учетной записи, вы получите электронное письмо для проверки.

Отправка электронной почты с помощью Mailjet через cURL в PHP

У нас есть ключи API, и мы готовы отправить электронное письмо с помощью Mailjet и cURL на PHP. Убедитесь, что на вашем сервере включен cURL, иначе следующий код не будет работать должным образом. Перед запуском приведенного ниже кода замените заполнители фактическими значениями.

<?php $body = [     'Messages' => [         [         'From' => [             'Email' => "SENDER_EMAIL_ADDRESS",             'Name' => "SENDER_NAME"         ],         'To' => [             [                 'Email' => "RECIPIENT_EMAIL_ADDRESS",                 'Name' => "RECIPIENT_NAME"             ]         ],         'Subject' => "Greetings from Mailjet.",         'HTMLPart' => "<h3>Dear User, welcome to Mailjet!</h3><br />May the delivery force be with you!"         ]     ] ];    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, "https://api.mailjet.com/v3.1/send"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                              'Content-Type: application/json') ); curl_setopt($ch, CURLOPT_USERPWD, "API_KEY:SECRET_KEY"); $server_output = curl_exec($ch); curl_close ($ch);    $response = json_decode($server_output); if ($response->Messages[0]->Status == 'success') {     echo "Email sent successfully."; }

Отправка электронной почты с помощью Mailjet через Guzzle на PHP

Вы можете использовать Guzzle для отправки писем. Вероятно, ваше приложение работает на платформе или CMS, где вы используете Composer для управления библиотеками. В этом случае Guzzle будет лучшим вариантом по сравнению с cURL.

В этом сценарии установите библиотеку Guzzle, выполнив команду:

composer require guzzlehttp/guzzle

После установки библиотеки, используя приведенный ниже код, вы можете отправлять электронные письма с помощью Guzzle на PHP.

<?php require_once "vendor/autoload.php";    use GuzzleHttpClient;    $body = [     'Messages' => [         [         'From' => [             'Email' => "SENDER_EMAIL_ADDRESS",             'Name' => "SENDER_NAME"         ],         'To' => [             [                 'Email' => "RECIPIENT_EMAIL_ADDRESS",                 'Name' => "RECIPIENT_NAME"             ]         ],         'Subject' => "Greetings from Mailjet.",         'HTMLPart' => "<h3>Dear User, welcome to Mailjet!</h3><br />May the delivery force be with you!"         ]     ] ];    $client = new Client([     // Base URI is used with relative requests     'base_uri' => 'https://api.mailjet.com/v3.1/', ]);    $response = $client->request('POST', 'send', [     'json' => $body,     'auth' => ['API_KEY', 'SECRET_KEY'] ]);    if($response->getStatusCode() == 200) {     $body = $response->getBody();     $response = json_decode($body);     if ($response->Messages[0]->Status == 'success') {         echo "Email sent successfully.";     } }

Отправка электронной почты с помощью SMTP-сервера Mailjet и PHPMailer

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

На панели управления нажмите «Настроить мой SMTP». На следующей странице вы получите все учетные данные SMTP.

Отправка электронной почты с помощью Mailjet (альтернатива SMTP-серверу Gmail) на PHP

Давайте посмотрим, как использовать учетные данные SMTP в PHP и отправить электронное письмо. Сначала установите библиотеку PHPMailer в свой проект, выполнив следующую команду:

composer require phpmailer/phpmailer

Затем напишите приведенный ниже код в свой файл PHP, который отправит электронное письмо с вашими учетными данными SMTP.

<?php use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException;    require_once "vendor/autoload.php";    $mail = new PHPMailer(true);    try {     $mail->isSMTP();     $mail->Host = 'MAILJET_SMTP_SERVER'; // host     $mail->SMTPAuth = true;     $mail->Username = 'API_KEY'; //username     $mail->Password = 'SECRET_KEY'; //password     $mail->SMTPSecure = 'tls';     $mail->Port = 587; //smtp port          $mail->setFrom('SENDER_EMAIL_ADDRESS', 'SENDER_NAME');     $mail->addAddress('RECIPIENT_EMAIL_ADDRESS', 'RECIPIENT_NAME');        $mail->isHTML(true);     $mail->Subject = 'Email Subject';     $mail->Body    = '<b>Email Body</b>';        $mail->send();     echo 'Email has been sent.'; } catch (Exception $e) {     echo 'Email could not be sent. Mailer Error: '. $mail->ErrorInfo; }

Отправка электронной почты с помощью SMTP-сервера Mailjet и Swift Mailer

Как и PHPMailer, Swift Mailer также является популярной библиотекой, полезной для отправки электронной почты с помощью SMTP-сервера. У вас должен быть PHP версии 7.0 или выше, чтобы отправлять электронные письма с помощью библиотеки Swift Mailer. Установите библиотеку Swift Mailer с помощью команды:

composer require swiftmailer/swiftmailer

После установки библиотеки, используя учетные данные SMTP-сервера Mailjet, вы можете отправить электронное письмо с помощью приведенного ниже кода.

<?php require_once 'vendor/autoload.php';    try {     // Create the Transport     $transport = (new Swift_SmtpTransport('MAILJET_SMTP_SERVER', 587, 'tls'))       ->setUsername('API_KET')       ->setPassword('SECRET_KEY')     ;        // Create the Mailer using your created Transport     $mailer = new Swift_Mailer($transport);        // Create a message     $body = '<b>Email Body</b>';        $message = (new Swift_Message('Email Subject'))       ->setFrom(['SENDER_EMAIL_ADDRESS' => 'SENDER_NAME'])       ->setTo(['RECIPIENT_EMAIL_ADDRESS'])       ->setBody($body)       ->setContentType('text/html')     ;        // Send the message     $mailer->send($message);        echo 'Email has been sent.'; } catch(Exception $e) {     echo $e->getMessage(); }

Замените заполнители фактическими значениями и проверьте код. Получатель должен был получить электронное письмо.

Заключение

В этом руководстве мы изучили API электронной почты Mailjet и ретранслятор SMTP. Мы обсудили отправку электронного письма через API электронной почты Mailjet с использованием cURL и Guzzle. Mailjet предоставляет SMTP-сервер, поэтому мы написали код, который использует SMTP-сервер Mailjet и отправляет электронное письмо пользователям. Итак, на основе этих 3 вариантов пользователи могут выбрать любой из вариантов в зависимости от требований своего проекта.

Статьи по Теме

Источник записи: artisansweb.net

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