Новости
Serverspace запустил обновленную партнерскую программу
Serverspace Black Friday
АБ
Антон Белов
мая 4, 2021
Обновлено августа 9, 2022

Как настроить Postfix для использования виртуальных почтовых ящиков на Ubuntu 20.04

Ubuntu VPS

После установки и базовой настройки Postfix может отправлять и получать письма, отправленные зарегистрированным в системе пользователям. В этом руководстве мы настроим Postfix для использования виртуальных почтовых ящиков на Ubuntu 20.04.

Настройка системы

В первую очередь требуется подготовка системы для работы виртуальных почтовых ящиков. Для этого создадим папку virtualmailboxes (для вашего доменного имени) - ее имя может быть произвольным, однако если вы его измените, не забудьте использовать соответствующее значение при дальнейшей настройке. В эту папку Postfix будет добавлять файлы, соответствующие каждому виртуальному пользователю, после получения этим пользователем первого письма.

sudo mkdir -p /home/virtualmailboxes/domain-name.com

Теперь давайте настроим пользователя virtualmail, группу и права на работу с этими папками.

sudo groupadd -g 2000 virtualmail
sudo useradd -g virtualmail -u 2000 virtualmail -d /home/virtualmailboxes -m
chown -R virtualmail:virtualmail /home/virtualmailboxes

Настройка Postfix

Откроем файл настройки Postfix:

sudo nano /etc/postfix/main.cf

Postfix может работать в одном из двух режимов при обработке почты для одного домена:

  • доставлять почту пользователям системы, как было настроено ранее;
  • работать с виртуальными почтовыми ящиками и доставлять почту виртуальным пользователям - что нам и требуется.

Так как для настройки первого варианта целевой домен добавляется в переменную mydestination, то мы удалим его оттуда и приведем к следующему виду:

mydestination = localhost.com, localhost

Далее добавим следующие настройки в файл конфигурации:

virtual_mailbox_domains = domain-name.com
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.

sudo nano /etc/postfix/virtualmaps
user1@domain-name.com domain-name.com/user1
user2@domain-name.com domain-name.com/user2
support@domain-name.com domain-name.com/support

Сохраним файл. Для применения настроек нужно выполнить две команды:

postmap /etc/postfix/virtualmaps
postfix reload

Теперь протестируем

Чтобы проверить корректность настройки, отправим электронное письмо виртуальному пользователю от имени другого пользователя, созданного нами, и укажем его почту в качестве обратного адреса (параметры -u и -r):

sudo echo "Postfix virtual mailboxes test" | mail -r user2@domain-name.com -u user2@domain-name.com -s "Subject" user1@domain-name.com

Чтобы просмотреть сообщения, полученные пользователем user1, используйте команду:

sudo cat /home/virtualmailboxes/domain-name.com/user1

Результат:

From user2@domain-name.com Wed Mar 31 12:55:19 2021
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

Если письма нет, попробуйте посмотреть журналы отправки почты с помощью команды:

sudo cat /var/log/mail.log

При возникновении ошибки письмо может быть возвращено отправителю, именно поэтому мы отправляли его от имени уже созданного виртуального пользователя.
Для того, чтобы просмотреть почтовый ящик отправителя (user2), используйте команду:

sudo cat /home/virtualmailboxes/domain-name.com/user2

Оценка:
5 из 5
Аverage rating : 5
Оценок: 2
050000 г. Алматы пр. Сейфуллина, д. 502
+7 (777) 555-36-66
ООО «ИТГЛОБАЛКОМ ЛАБС»