
Допустим, я хочу, чтобы люди отправляли письма на мой сервер, и я хочу пересылать их все на разные адреса электронной почты. Например, у меня есть следующее сопоставление:
[email protected] => [email protected]
[email protected] => [email protected]
[email protected] => [email protected]
...
[email protected] => [email protected]
Этот список может вырасти до огромного числа, и я хочу иметь возможность легко пересылать их все. Я также хочу, чтобы пользователи могли легко настраивать, чтобы они могли устанавливать сопоставление для себя (так же, как вы можете легко настроить пересылку в gmail и т. д.)
В настоящее время на моем сервере установлен Postfix, но, похоже, с ним мне придется постоянно редактировать файл конфигурации и перезагружать его, а это не кажется масштабируемым, если учесть, что список очень большой.
Как лучше всего этого добиться? Мне не обязательно использовать postfix, я могу использовать совершенно другую систему, которая подходит для этой цели, если это необходимо.
решение1
Postfix поддерживает множествотаблицы поискаи вы можете использовать таблицы поиска в базе данных ( mysql,pgsql or sqlite
)для хранения таких больших списков и вам не нужно перезагружать postfix при их использовании. Допустим, у вас есть таблица forwards
в вашей базе данных postgres со столбцами emailaddress
и forwards
.
emailaddress forwards
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected]
и вы можете настроить свой постфикс для его использования.
#/etc/postfix/main.cf
#... other main.cf contents omitted
virtual_alias_domains = myserver.net
virtual_alias_maps = pgsql:/etc/postfix/pgsql_forwards.cf
#...
и содержание /etc/postfix/pgsql_forwards.cf
должно быть что-то вроде
#/etc/postfix/pgsql_forwards.cf
dbname = emaildb
hosts = db.example.net
user = emailuser
password = somerandompass
query = SELECT forwards FROM forwards where emailaddress='%s';
- Но сначала убедитесь, что все таблицы поиска скомпилированы с вашим постфиксом, запустив
postconf -m
. Я видел, как многие использовалиmysql
. - А чтобы ваши пользователи могли самостоятельно настраивать переадресацию, вам придется предоставить им веб-приложение, которое будет обновлять таблицу базы данных, используемую postfix.
Надеюсь, это поможет.