Как настроить Postfix для использования виртуальных почтовых ящиков на Ubuntu 20.04
После установки и базовой настройки, Postfix может отправлять и получать письма, отправленные зарегистрированным в системе пользователям. В этом руководстве мы настроим Postfix для использования виртуальных почтовых ящиков на Ubuntu 20.04.
Настройка системы
В первую очередь требуется подготовка системы для работы виртуальных почтовых ящиков. Для этого создадим папку virtualmailboxes (для вашего доменного имени) — ее имя может быть произвольным. Если вы его измените, не забудьте использовать соответствующее имя папки при дальнейшей настройке. В эту папку Postfix будет добавлять файлы, соответствующие каждому виртуальному пользователю, после получения этим пользователем первого письма.
Теперь давайте настроим пользователя virtualmail, группу и права на работу с этими папками.
sudo useradd -g virtualmail -u 2000 virtualmail -d /home/virtualmailboxes -m
chown -R virtualmail:virtualmail /home/virtualmailboxes
Настройка Postfix
Откроем файл настройки Postfix:
При обработке почты для одного домена, Postfix может работать в одном из двух режимов:
- доставлять почту пользователям системы, как было настроено ранее;
- работать с виртуальными почтовыми ящиками и доставлять почту виртуальным пользователям – что нам и требуется.
Так как для настройки первого варианта целевой домен добавляется в переменную mydestination, то мы удалим его оттуда и приведем к следующему виду:
Далее добавим следующие настройки в файл конфигурации:
virtual_mailbox_base = /home/virtualmailboxes
virtual_mailbox_maps = hash:/etc/postfix/virtualmaps
virtual_minimum_uid = 500
virtual_uid_maps = static:2000
virtual_gid_maps = static:2000
Описание добавленных настроек:
- virtual_mailbox_domains указывает на то, что Postfix работает в режиме виртуального почтового ящика, а также содержит в себе домен, для которого обрабатывается почта;
- virtual_mailbox_base указывает путь для хранения почты;
- virtual_mailbox_maps указывает файл со списком виртуальных пользователей;
- virtual_minimum_uid, virtual_uid_maps, virtual_gid_maps – настройки системного пользователя, который будет управлять почтовой папкой.
Теперь создадим файл со списком виртуальных почтовых ящиков, путь к которому был указан в virtual_mailbox_maps.
Каждая строка этого файла должна содержать адрес электронной почты в формате user@domain и путь к файлу для хранения почты в формате Домен/папка (адрес и пусть разделены пробелом). Путь к файлу указывается относительно значения опции virtual_mailbox_base файла настроек, в нашем случае – /home/virtualmailboxes.
user2@domain-name.com domain-name.com/user2
support@domain-name.com domain-name.com/support
Сохраним файл. Для применения настроек нужно выполнить две команды:
postfix reload
Теперь протестируем
Чтобы проверить корректность настройки, отправим электронное письмо виртуальному пользователю от имени другого пользователя, созданного нами, и укажем его почту в качестве обратного адреса (параметры -u и -r):
Чтобы просмотреть сообщения, полученные пользователем user1, используйте команду:
Результат:
При возникновении ошибки письмо может быть возвращено отправителю, именно поэтому мы отправляли его от имени уже созданного виртуального пользователя.
Для того, чтобы просмотреть почтовый ящик отправителя (user2), используйте команду:
Логи работы Postfix хранятся в /var/log/mail.log, сообщения об ошибках в /var/log/mail.err.