Одна из актуальных задач - оптимизация почтовой системы нашего форума.
В настоящее время существует ряд проблем, которые требуют решения:
Ненадёжная доставка писем пользователям
Попадание в спам важных уведомлений
Ограничения на количество отправляемых писем
Необходимость в более стабильной системе отправки
Текущие задачи:
Настройка надёжного SMTP-сервера
Обеспечение безопасности email-рассылок
Оптимизация скорости отправки
Минимизация попадания в спам
Настройка отправки писем: ищем оптимальные решения
Re: Настройка отправки писем: ищем оптимальные решения
Реализация:
Шаг 1. Подготовка сервера
1.Обновите систему:
bash
2.Настройте FQDN (полное доменное имя):
bash
Добавьте запись в /etc/hosts:
Настройте 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
При установке Postfix выберите «Internet Site».
Настройте Postfix (/etc/postfix/main.cf):
3.Перезапустите Postfix:
bash
Настройте Dovecot — отредактируйте /etc/dovecot/dovecot.conf и /etc/dovecot/conf.d/10-mail.conf
начнём с /etc/dovecot/dovecot.conf
conf
теперь отредактируем
/etc/dovecot/conf.d/10-mail.conf
bash
----
Вариант B. Использование только Postfix (для отправки писем) (не будем использовать, пропустим)
Если нужна только отправка (без приёма), установите Postfix:
bash
Выберите «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
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
Шаг 2: Генерация ключей DKIM
Создайте директорию для ключей:
bash
Сгенерируйте ключи:
bash
Шаг 3: Настройка файлов конфигурации
Отредактируйте /etc/opendkim.conf:
conf
Создайте файлы KeyTable и SigningTable:
bash
Добавьте строку
bash
Добавьте строку
Шаг 4: Настройка Postfix
Отредактруйте /etc/postfix/main.cf:
config
Шаг 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
Шаг 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‑адрес.
Нажмите «Отправить тестовое письмо».
Проверьте почту — должно прийти письмо от форума.
Шаг 1. Подготовка сервера
1.Обновите систему:
bash
Code: Select all
sudo apt update && sudo apt upgrade -y
bash
Code: Select all
sudo hostnamectl set-hostname mail.4techforum.ru
Code: Select all
77.222.35.209 mail.4techboard.ru mailТак как домен форума 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 -yCode: 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
bash
Code: Select all
sudo systemctl restart postfixначнём с /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.confCode: 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----
Шаг 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.ru4techforum.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Создайте директорию для ключей:
bash
Code: Select all
sudo mkdir /etc/opendkim/keys
sudo chown -R opendkim:opendkim /etc/opendkim/keysbash
Code: Select all
sudo opendkim-genkey -r -d 4techforum.ru -s mail -h sha256 -g 1024 -p /etc/opendkim/keys/4techforum.ru/mail/private
Отредактируйте /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/simplebash
Code: Select all
sudo nano /etc/opendkim/KeyTableCode: Select all
mail._domainkey.4techforum.ru mail.private 4techforum.ru:/etc/opendkim/keys/4techforum.ru/mail/private/mail.private
Code: Select all
sudo nano /etc/opendkim/SigningTableCode: Select all
*@4techforum.ru mail._domainkey.4techforum.ruОтредактруйте /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
Добавьте следующую запись в 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.