mail
smtp
wordpress

Добавление бесплатного SMTP на сайт WordPress и не только

04.04.2025
Просмотров: 66

В этой статье разберёмся, почему нужно всегда использовать smtp-сервер на своём сайте, для чего он нужен и как бесплатно (за ограниченное число писем) оформить его из РФ.

Для чего нужен SMTP

SMTP (Simple Mail Transfer Protocol) — это протокол для отправки электронной почты. Он нужен, чтобы передавать письма от отправителя к почтовому серверу и между серверами. При обычной отправке с помощью встроенного PHP письмо будет получено, но большинство почтовых клиентов прокинет его в СПАМ и клиент / пользователь его не увидит. Причем даже если помечать письма не как СПАМ, следующие письма все равно будут отправлены туда.

Проблема возникла из-за широкого распространения рекламных писем и СКАМ-писем, как ответ на это было решено использовать SMTP, он позволяет легко и быстро верифицировать отправляющего и заблокировать нежелательные сообщения, если такие будут.

Поэтому почтовые клиенты сейчас и кидают письма, отправленные другим способом в СПАМ.

Как настроить SMTP

Есть несколько способов это сделать:

  • Настроить самому отдельный SMTP (это сложно и не очень выгодно, если у вас немного писем). Вот статья
  • Либо воспользоваться готовым сервером, который будет пропускать через себя ваши письма. В этой статье будем говорить о нём.

Вообще вы можете настроить SMTP в Selectel (или других подобных площадках), но обычно только если все ваши сервера и домен настроены там, иначе работать не будет.

Я же нашел бесплатный вариант, доступный для пользования в РФ, зарегестрироваться не cложно и настойка тоже занимает немного времени – это SMTP.BZ.

Для регистрации нужно указать Имя, Email, Пароль – и готово. Затем нужно добавить домен в админке.

Сначала переходим в домены:

Нажимаем кнопку “Добавить новый домен”:

Добавляем домен:

После этого нужно будет в DNS-записях прописать указанные данные:

Я покажу на примере timeweb, но в целом это примерно одинаково делается везде, где бы не хранился ваш домен.

Заходим в “домены” -> “мои домены” -> “три точки” -> “редактор DNS”:

Далее выбираем “добавить запись” и выбираем тип:

После выбора типа вставляем значение и нажимаем “Сохранить”.

две записи будут txt, одна – CNAME. Для первой указываем smtpbz в “Хост”, для второй оставляем пустым.

Затем возвращаемся в админ-панель и проверяем наличие записей. После их появления домен должны подтвердить вручную сотрудники компании. Если этого не произойдёт в течение суток – напишите в поддержку, они отреагируют быстро (обычно в течение дня).

Теперь мы готовы отправлять письма. Переходим во вкладку “Подключение и тариф” и видим данные:

нам нужен хост, порт, логин и пароль. При желании можно создать отдельного пользователя с доступом к отдельным доменам.

Настройка SMTP в WordPress

Простейшая настройка SMTP в WordPress – с помощью плагина.

Как обычно, заходим в плагины -> добавить:

И вводим SMTP в поиск, выбираем плагин WP Mail SMTP:

(это не принципиально, вы можете выбрать другой плагин, но я покажу на этом).

После активации плагина и начала настройки, нам нужно выбрать какую почтовую программу мы будем использовать:

Представленные тут варианты просты в интеграции, но либо не работают без ВПН, либо имеют проблемы с регистрацией на ру почту, либо платные и тд. Поэтому, собственно, я и решил написать эту статью.

Листаем в самый низ и выбираем “Прочие SMTP”:

Далее нужно заполнить информацию из smtp.bz таким вот образом:

Также можно указать имя (как будет отображаться почта) и email отправителя (если будете отправлять письма клиентам, то удостоверьтесь, что создали такую почту и на нее приходят письма):

После будет еще три шага, которые нужно просто пропустить – и готово. Плагин отправит тестовое письмо на указанный вами ящик и вы сможете проверить что все работает корректно.

Настройка для PHP

Проще всего установить библиотеку phpmailer с помощью composer:

composer require phpmailer/phpmailer

Затем пишем отправку письма:

// Подключаем класс PHPMailer
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php'; // Если используете Composer

try {
    // Создаем объект PHPMailer
    $mail = new PHPMailer(true); // true — включаем обработку исключений

    // Настраиваем SMTP-сервер
    $mail->isSMTP(); // Используем SMTP-протокол
    $mail->Host       = 'connect.smtp.bz'; // Адрес SMTP-сервера
    $mail->SMTPAuth   = true;               // Включаем аутентификацию
    $mail->Username   = 'your_username';    // Логин почтового аккаунта
    $mail->Password   = 'your_password';    // Пароль от почтового аккаунта
    $mail->SMTPSecure = 'tls';              // Протокол шифрования (tls или ssl)
    $mail->Port       = 2525;                // Порт для TLS

    // От кого отправляется письмо
    $mail->setFrom('from@example.com', 'Your Name');
    
    // Кому отправляется письмо
    $mail->addAddress('to@example.com');     // Добавляем получателя
    
    // Тема письма
    $mail->Subject = 'Test Email via SMTP';
    
    // Текст письма
    $mail->Body = 'This is the HTML message body in bold!';
    
    // Если хотим отправить письмо в формате HTML, включаем эту строку
    $mail->isHTML(true);
    
    // Пытаемся отправить письмо
    if ($mail->send()) {
        echo 'Message has been sent';
    } else {
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    }
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

Готово – теперь отправка письма будет проходить через SMTP-протокол

Настройка для Python

В Python можно использовать встроенную smtplib.

Код будет вот таким:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# Данные для подключения к SMTP-серверу
smtp_server = 'connect.smtp.bz'  # Адрес SMTP-сервера
smtp_port = 2525                   # Порт для TLS (или 465 для SSL)
username = 'your_username'        # Логин почтового аккаунта
password = 'your_password'        # Пароль от почтового аккаунта

# Информация о письме
sender_email = 'from@example.com'
receiver_email = 'to@example.com'
subject = 'Test Email via SMTP with Python'
body = 'This is a test email sent using Python.'

# Создание MIME-сообщения
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = subject

# Добавление тела письма
message.attach(MIMEText(body, 'plain'))

# Преобразование сообщения в строку
text = message.as_string()

# Подключение к SMTP-серверу и отправка письма
with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls()  # Включаем шифрование TLS
    server.login(username, password)  # Авторизация
    server.sendmail(sender_email, receiver_email, text)  # Отправка письма

print('Email sent successfully!')

Готово!)

Вывод

Разобрали как быстро оформить себе SMTP через сторонний сервис и настроить отправку в WordPress или отправлять с использованием языков PHP / Python.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x