Как настроить 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.
user2@domain-name.com domain-name.com/user2
support@domain-name.com domain-name.com/support
Сохраним файл. Для применения настроек нужно выполнить две команды:
postfix reload
Теперь протестируем
Чтобы проверить корректность настройки, отправим электронное письмо виртуальному пользователю от имени другого пользователя, созданного нами, и укажем его почту в качестве обратного адреса (параметры -u и -r):
Чтобы просмотреть сообщения, полученные пользователем user1, используйте команду:
Результат:
Return-Path: <user2@domain-name.com>
X-Original-To: user1@domain-name.com
Delivered-To: user1@domain-name.com
Received: by domain-name.com (Postfix, from userid 0)
id 260A481421; Wed, 31 Mar 2021 12:55:19 +0000 (UTC)
Subject: Subject
To: <user1@domain-name.com>
X-Mailer: mail (GNU Mailutils 3.7)
Message-Id: <20210331125519.260A481421@domain-name.com>
Date: Wed, 31 Mar 2021 12:55:19 +0000 (UTC)
From: root <user2@domain-name.com>
Postfix virtual mailboxes test
Если письма нет, попробуйте посмотреть журналы отправки почты с помощью команды:
При возникновении ошибки письмо может быть возвращено отправителю, именно поэтому мы отправляли его от имени уже созданного виртуального пользователя.
Для того, чтобы просмотреть почтовый ящик отправителя (user2), используйте команду: