Агент передачи почты Postfix
Postfix — это агент передачи почты (MTA), приложение для отправки и приема электронной почты. Его можно настроить так, чтобы только локальные приложения могли использовать его для отправки электронной почты. Это может быть полезно, если вам нужно регулярно рассылать по электронной почте уведомления от ваших приложений, или если у вас много исходящего трафика, и сторонний поставщик услуг электронной почты не разрешает такие объемы. Это облегченная альтернатива развертыванию полноценного сервера SMTP, позволяющая сохранить требуемые функции.
Базовые настройки
Имя хоста вашего сервера и имя указанное при автоматической настройке должны соответствовать. Для проверки имени хоста сервера можно ввести hostname
в командной строке.
Обновляем список пакетов сервера:
sudo apt update
Обновляем пакеты сервера:
sudo apt upgrade
Быстрее всего будет установить пакет mailutils
, включающий Postfix
и несколько дополнительных программ, которые можно использовать для тестирования отправки электронной почты.
Установка mailtuils:
sudo apt install mailutils
В конце установки будет предложено выбрать несколько настроек.
Tип настройки - выбираем стандартную опцию Internet site
:
Почтовое имя - определяется параметром System mail name
и должно совподать с названием домена от имени которого будут приходить письма название_домена.com
:
Управление Postfix
Запустить службу Postfix:
sudo systemctl start postfix
Остановить службу Postfix:
sudo systemctl stop postfix
Перезапустить службу Postfix:
sudo systemctl restart postfix
Статус службу Postfix:
sudo systemctl status postfix
Настройка Postfix
Настроим Postfix для отправки и приема электронных писем только с сервера, на котором он запущен, с localhost
.
Для этого нужно настроить Postfix для прослушивания только интерфейса loopback
, интерфейса виртуальной сети, которую сервер использует для внутренней связи. Для внесения изменений потребуется отредактировать главный файл конфигурации Postfix с именем main.cf
, хранящийся в каталоге etc/postfix
.
Скопируем конфигурационный файл:
sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.default
Открываем конфигурационный файл Postfix
:
sudo nano /etc/postfix/main.cf
Находим директиву myhostname
и меняем содержимое на название_домена.com
:
myhostname = название_домена.com
Также вам потребуется изменить директиву mydestination
, используемую для указания списка доменов, доставляемых через транспорт доставки почты local_transport
. В случае хостинга нескольких доменов на одном сервере другие домены также можно передать Postfix с помощью директивы mydestination
:
mydestination = название_домена.com
Если ваш домен фактически является субдоменом, и вы хотите, чтобы сообщения электронной почты выглядели, как если бы они были отправлены с главного домена, вы можете добавить следующую строку в конец файла main.cf
:
masquerade_domains = название_домена.com
Параметр inet_interfaces
указывает все адреса сетевых интерфейсов, на которых Postfix
должен ждать соединений:
inet_interfaces = loopback-only
Перезапустить службу Postfix:
sudo systemctl restart postfix
Настройка имени хоста сервера
Имя хоста сервера должно соответствовать домену который мы указывали ранее название_домена.com
.
Проверяем имя хоста сервера, если не соответствует название_домена.com
, меняем:
sudo nano /etc/hostname
Переадресация системной почты
Настроим переадресацию электронной почты для пользователя root
, чтобы сгенерированные системой сообщения, отправляемые на этот адрес, пересылались на внешний адрес электронной почты.
Файл /etc/aliases
содержит список альтернативных имен получателей электронных писем. Откройте его для редактирования:
sudo nano /etc/aliases
Единственная содержащаяся в нем директива предписывает пересылать сгенерированные системой электронные сообщения пользователю root
. Добавьте в конец файла следующую строку которая содержит адрес электронной почты:
root: логин@yandex.ru
Для вступления изменений в силу выполните следующую команду:
sudo newaliases
При запуске команды newaliases
будет построена база данных псевдонимов, используемых командой mail
. Эти псевдонимы берутся из файла конфигурации, который только что отредактировали.
Протестируйте отправку электронных писем пользователю root
с помощью следующей команды:
echo "This is the body of the email" | mail -s "This is the subject line" root
Серверные логи
По умолчанию каждое отправленное сообщение регистрируется в файле:
/var/log/mail.log
По умолчанию все ошибки записываются в файл:
/var/log/mail.err
Тестирование
Теперь нужно проверить, может ли Postfix
отправлять сообщения на внешний электронный адрес. Для этого используется команда mail
, которая также входит в пакет mailutils
.
Чтобы отправить тестовое сообщение, введите команду:
echo "Soobshchenie" | mail -s "Tema" логин@yandex.ru
Обратите внимание, в этой конфигурации адрес в поле From
для отправляемых вами тестовых электронных писем будет иметь вид your_user_name@your_domain
, где your_user_name
– это пользователь сервера, от имени которого вы запускали команду.
Настройка Postfix под Яндекс
Возникает ощибка по причине что Яндекс не поддерживает SMTPUTF8
, по умолчанию SMTPUTF8
включено в новых версиях Postfix
. Отключить SMTPUTF8
можно указав в файле /etc/postfix/main.cf
директиву.
Открываем конфигурационный файл Postfix
:
sudo nano /etc/postfix/main.cf
В конец файла вставляем:
smtputf8_enable = no
Перезапустить службу Postfix
:
sudo systemctl restart postfix