ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Нужны пояснения про nginx smtp proxy или "умный" MTA


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Нужны пояснения про nginx smtp proxy или "умный" MTA
  • From: umask <umask@xxxxxxxxx>
  • Date: Tue, 10 Jul 2007 08:58:18 +0400

> u> Фактически соответствие пользователь\imap-сервер есть в базе

> u> сервера HTTP-аутентификации.

> Насколько я понимаю HTTP-сервер обращается к какой то реляционной базе

> данных для получения информации о пользователях?



Да, верно.

БД сейчас mysql, но может быть и любая другая. БД ещё не выбрана.

HTTP-сервер авторизации обращается к вот таким таблицам:



TABLE `server` (

  `server_id` int(11) default NULL,

  `server_ip` varchar(16) default NULL,

  `server_imap_port` int(11) default NULL,

  `server_pop_port` int(11) default NULL

);



TABLE `user` (

  `username` varchar(64) default NULL,

  `password` varchar(64) default NULL,

  `server_id` int(11) default NULL,

  KEY `server_id` (`server_id`)

);



Т.е. по логину и паролю из БД выбирается server_ip IMAP/POP-backend'а и исходя 
из протокола пользователя (IMAP/POP) server_imap_port или server_pop_port (это 
в случае проксирования nginx'ом IMAP/POP-клиентов).



Судя по всему, именно из данных этой таблицы будет строиться система 
транспортов в postfix.







> Если информация о пользователях хранится в PostgreeSQL то это будет

> выглядеть примерно так:

> в main.cf

> transport_maps = proxy:pgsql:$config_directory/maps/transport.cf

> В transport.cf

> user = someone

> password = some_password

> dbname = some_database

> query = SELECT CONCAT('lmtp:inet:', backend) FROM users WHERE

>           user = '%u' AND domain = '%d';

> где backend это сервер на котором находится ящик данного пользователя.

>           



А как в результат запроса к БД добавить tcp-порт в который postfix будет 
передавать письмо для локальной доставки (и это вообще возможно)?

Понятно, что postfix не отдаст письмо для доставки в IMAP, для этих целей 
вообще возможен свой postfix на backend'е или любой другой smtp/lmtp 
"приниматель". 



 




Copyright © Lexa Software, 1996-2009.