Я установил Posfix, Dovecot и MySQL на Debian (например, sample.net) и настроил его, чтобы внешние пользователи могли отправлять почту только в этом домене sample.net (используя мой SMTP). Также я настроил, что все письма (например, *@sample.net) пересылаются на один почтовый ящик bulk@sample.net. В основном я следовал этому руководству.
Некоторая моя конфигурация Postfix:
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf
mysql-virtual_forwardings.cf
query = SELECT destination FROM forwardings WHERE source='%s'
Table
| SOURCE | destination |
| @sample.net | bulk@sample.net |
Я разрешил моему SNTP получать только почту для sample.net следующим образом:
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual-transport.cf
mysql-virtual-transport.cf
query = SELECT transport FROM transport WHERE DOMAIN='%s'
Table
| DOMAIN | transport |
| sample.net | : |
| * | error:Only allowing one domain |
Все работает так, как я ожидал, но мне нужно добавить возможность отправлять почту от локальных клиентов (например, PHP) внешним пользователям. К сожалению, у меня нет идей, как это сделать.
Совершенно блестящее руководство по настройке почтового сервера с postfix, dovecot и mysql можно найти здесь: https://workaround.org/ispmail/wheezy
Я проработал это дважды, один раз с Debian и упомянутыми там компонентами и один раз с Ubuntu, с немного разными версиями postfix и dovecot и с postgres вместо mysql.
Чтение руководства и понимание его стоит каждой потраченной минуты, и я всегда рекомендую его людям, даже если они собираются иметь меньшую установку.
Настройки по умолчанию в postfix - запретить ретрансляцию кому-либо извне машины, а также принимать почту только для доменов, размещенных локально.
Имея это в виду, то, чего вы хотите достичь, довольно просто. Вы должны установить mydestination
вот так (при условии, что постфиксный сервер находится в sample.net
)
mydestination = $myhostname localhost.$mydomain localhost
Устанавливать myhostname
к имени хоста сервера что-то вроде mail.sample.net
и mydomain
к sample.net
Это гарантирует, что "извне" постфикс будет принимать почту только для sample.net
, то вы можете настроить псевдоним для перенаправления всей почты на sample.net
к bulk@sample.net
Затем вы можете установить mynetworks
разрешить пересылку только от себя вот так:
mynetworks = 127.0.0.0/8
Это сделает все, о чем вы просили, и он намного более гибкий. Вам, вероятно, потребуется сделать такие вещи, как настройка записи MX, RDNS и, возможно, другие вещи, которые выходят за рамки этого ответа.