Настройка отправки писем: ищем оптимальные решения

Post Reply
imm
Site Admin
Posts: 5
Joined: Tue Mar 10, 2026 9:40 pm

Настройка отправки писем: ищем оптимальные решения

Post by imm »

Одна из актуальных задач - оптимизация почтовой системы нашего форума.
В настоящее время существует ряд проблем, которые требуют решения:

Ненадёжная доставка писем пользователям

Попадание в спам важных уведомлений

Ограничения на количество отправляемых писем

Необходимость в более стабильной системе отправки

Текущие задачи:

Настройка надёжного SMTP-сервера

Обеспечение безопасности email-рассылок

Оптимизация скорости отправки

Минимизация попадания в спам
imm
Site Admin
Posts: 5
Joined: Tue Mar 10, 2026 9:40 pm

Re: Настройка отправки писем: ищем оптимальные решения

Post by imm »

Реализация:

Шаг 1. Подготовка сервера

1.Обновите систему:
bash

Code: Select all

sudo apt update && sudo apt upgrade -y
2.Настройте FQDN (полное доменное имя):
bash

Code: Select all

sudo hostnamectl set-hostname mail.4techforum.ru
Добавьте запись в /etc/hosts:

Code: Select all

77.222.35.209  mail.4techboard.ru  mail
Настройте DNS‑записи для домена:

Так как домен форума 4techforum.ru регистрировался в "Sweb" идём перенастраивать DNS зону записи MX туда.

A‑запись: mail.4techforum.ru → 77.222.35.209;

MX‑запись: @ → mail.4techforum.ru, приоритет 10;

PTR‑запись (обратная DNS): настройте у провайдера VPS — должна возвращать mail.ваш-домен.ru. - пока пропустим этот пункт.

Шаг 2. Установка и настройка почтового сервера

Вариант A. Postfix + Dovecot (рекомендуемый)

1.Установите пакеты:
bash

Code: Select all

sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d -y
scr1.png
При установке Postfix выберите «Internet Site».
scr1.png
Настройте Postfix (/etc/postfix/main.cf):

Code: Select all

myhostname = mail.4techforum.ru
mydomain = 4techforum.ru
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8
relay_domains = $mydestination
3.Перезапустите Postfix:
bash

Code: Select all

sudo systemctl restart postfix
Настройте Dovecot — отредактируйте /etc/dovecot/dovecot.conf и /etc/dovecot/conf.d/10-mail.conf

начнём с /etc/dovecot/dovecot.conf
conf

Code: Select all

# Общие настройки
protocols = imap pop3 lmtp
listen = *
disable_plaintext_auth = yes
auth_mechanisms = plain login
mail_location = maildir:/var/mail/%d/%n

# Настройки безопасности
ssl = required
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem

# Логирование
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log
теперь отредактируем
/etc/dovecot/conf.d/10-mail.conf

bash

Code: Select all

sudo nano /etc/dovecot/conf.d/10-mail.conf

Code: Select all

# Путь к почтовым ящикам
mail_location = maildir:/var/mail/%d/%n

# Права доступа
mail_privileged_group = mail
mail_access_groups = mail

# Ограничения
mail_size_limit = 1G
mail_max_userip_connections = 10

# Временные файлы
mail_temp_dir = /var/tmp
mail_plugins = $mail_plugins quota
----
Вариант B. Использование только Postfix (для отправки писем) (не будем использовать, пропустим)
Если нужна только отправка (без приёма), установите Postfix:

bash

Code: Select all

sudo apt install postfix -y
Выберите «Internet Site» и укажите домен.
----
Шаг 3. Настройка безопасности и аутентификации

1.Установите SSL‑сертификат (Let’s Encrypt):
bash
sudo apt install certbot -y
sudo certbot certonly --standalone -d mail.4techforum.ru

Здесь получаем первую ошибку
sudo apt install certbot -y
Could not bind TCP port 80 because it is already in use by another process on
this system (such as a web server). Please stop the program in question and then
try again.

Давайте разберем решение проблемы с установкой SSL-сертификата через Let’s Encrypt.
Причина ошибки

Ошибка возникает потому, что порт 80 уже используется другим процессом
Способы решения

Вариант 1: Использование веб-сервера (обычно веб-сервером Apache)
Если у вас уже работает веб-сервер, используйте плагин для него:
bash

Code: Select all

sudo apt-get install python3-certbot-apache
sudo certbot --apache -d mail.4techforum.ru


4techforum.ru. IN TXT "v=spf1 mx a ip4:77.222.35.209 -all"

mx — разрешает отправку почты с MX-серверов
a — разрешает отправку с серверов, указанных в A-записи
ip4 — конкретный IP-адрес вашего сервера
-all — политика для всех остальных серверов (отклонять)

3.Настройте DKIM:
Шаг1.
Установите opendkim:
bash

Code: Select all

sudo apt install opendkim opendkim-tools -y
Шаг 2: Генерация ключей DKIM
Создайте директорию для ключей:
bash

Code: Select all

sudo mkdir /etc/opendkim/keys
sudo chown -R opendkim:opendkim /etc/opendkim/keys
Сгенерируйте ключи:
bash

Code: Select all

sudo opendkim-genkey -r -d 4techforum.ru -s mail -h sha256 -g 1024 -p /etc/opendkim/keys/4techforum.ru/mail/private
Шаг 3: Настройка файлов конфигурации

Отредактируйте /etc/opendkim.conf:
conf

Code: Select all

# Общие настройки
Mode sv
Syslog yes
UMask 002
Canonicalization relaxed/simple
SignatureAlgorithm rsa-sha256
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalBodySigning yes
Socket inet:8891@localhost
PidFile /var/run/opendkim/opendkim.pid
UserID opendkim:opendkim
Domain 4techforum.ru
Selector mail
KeyFile /etc/opendkim/keys/4techforum.ru/mail/private/mail.private

# Настройки безопасности
UMask 002
Syslog yes
Canonicalization relaxed/simple
Создайте файлы KeyTable и SigningTable:

bash

Code: Select all

sudo nano /etc/opendkim/KeyTable
Добавьте строку

Code: Select all

mail._domainkey.4techforum.ru mail.private 4techforum.ru:/etc/opendkim/keys/4techforum.ru/mail/private/mail.private
bash

Code: Select all

sudo nano /etc/opendkim/SigningTable
Добавьте строку

Code: Select all

*@4techforum.ru mail._domainkey.4techforum.ru
Шаг 4: Настройка Postfix
Отредактруйте /etc/postfix/main.cf:
config

Code: Select all

milter_protocol = 2
milter_wrapper_timeout = 3600s
milter_retry_timeout = 3600s
milter_connect_timeout = 3600s
non_smtpd_milters = inet:localhost:8891
smtpd_milters = inet:localhost:8891
Шаг 5: Добавление TXT-записи в DNS

Добавьте следующую запись в DNS:
mail._domainkey.4techforum.ru TXT "v=DKIM1; k=rsa; p=fffffd **********************.."

Шаг 6: Проверка и перезапуск служб

Проверьте конфигурацию:

bash

sudo opendkim-testkey -d 4techforum.ru -s mail -vvv

Перезапустите сервисы:

bash

Code: Select all

sudo systemctl restart opendkim
sudo systemctl restart postfix


Шаг 2. Настройка в админ‑панели phpBB

Войдите в Админ‑панель (ACP) phpBB.

Перейдите в раздел «Общие» → «Настройки конфигурации» → «Настройки электронной почты».

Найдите параметр «Использовать SMTP‑сервер для отправки почты» и выберите «Да».

Заполните поля:

Адрес SMTP‑сервера: укажите адрес (например, smtp.gmail.com).

Порт SMTP‑сервера: введите порт (465, 587 или другой).

Метод аутентификации SMTP: выберите LOGIN (чаще всего подходит).

Имя пользователя SMTP: полный email‑адрес (например, user@gmail.com).

Пароль SMTP: пароль от почтового ящика (или пароль приложения для Gmail).

Шифрование SMTP: выберите SSL/TLS, если сервер его поддерживает.

Сохраните изменения.

Шаг 3. Проверка работы

В админ‑панели перейдите в «Общие» → «Инструменты» → «Тестирование электронной почты».

Введите свой email‑адрес.

Нажмите «Отправить тестовое письмо».

Проверьте почту — должно прийти письмо от форума.
You do not have the required permissions to view the files attached to this post.
Post Reply

Return to “Проектный хаб”