Точно не обязательно.
ИМХО:
Не уверен, что такая схема является правильной, но у меня работает.
Реальная сеть:
Просим провайдера добавить MX-запись для домена mydomain.provider.ru, с IP-адресом хоста mydomain.provider.ru.
Просим провайдера прописать нас в обратной зоне.
SPF запись бы еще, но этого как правило не делают
Настраиваем форвад 25 порта с рельного IP, выданного провайдером, на шлюз с почтовым сервером внутри сети и нат для отправки почты с данного шлюза.
Код:
$ host -t mx mydomain.ru
mydoain.ru mail is handled by 10 mail.mydomain.ru.
$ host mx.kom-building.ru
mail.mydomain.ru has address x.x.x.214
$ host x.x.x.214
214.x.x.x.in-addr.arpa domain name pointer mail.mydomain.ru.
Внутри локальной сети:
Настроен
bind, в зонах локальной сети содержится MX-запись данного почтового сервера, с его внутренним IP.
Код:
$host -t mx kb.local
kb.local mail is handled by 10 sys-bsd.kb.local.
$ cat /etc/hosts| grep -v "#"
::1 localhost localhost.kb.local
127.0.0.1 localhost localhost.kb.local
192.168.0.216 sys-bsd sys-bsd.kb.local
То есть, от
postfix требуется:
1. Обслуживать почту внутри сети, для локального домена;
2. Отправлять почту в мир - подменяя адрес отправителя, прописывая внешний домен и представлясь хостом из внешнего домена.
3. Получать почту из мира для виртуальных почтовых пользователей или для виртуальных почтовых ящиков и отдавать ее локальным пользователям или MDA (cyrus-imapd, в моем случае), соответсвенно.
Значит необходимо будет:
1. Правильно настроить
postfix для работы с почтой для локального домена;
2. Добавить виртуальный домен (пользователи или почтовые ящики) mydomain.provider.ru для получения из мира;
3. Настроить address-rewriting, например,
generic_maps для отправки почты в мир.
4. Настроить команду HELO сервера:
Код:
smtp_helo_name = mydomain.provider.ru