Настройка автоматизированной системы пересылки электронной почты для большого количества учетных записей электронной почты

Настройка автоматизированной системы пересылки электронной почты для большого количества учетных записей электронной почты

Допустим, я хочу, чтобы люди отправляли письма на мой сервер, и я хочу пересылать их все на разные адреса электронной почты. Например, у меня есть следующее сопоставление:

[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.

Надеюсь, это поможет.

Связанный контент