[mdk-re] Анатомия почты в Spring

Alex Savvin =?iso-8859-1?q?alex_=CE=C1_dag=2Ebryansk=2Eru?=
Вт Сен 25 00:32:11 MSD 2001


On Mon, 24 Sep 2001 22:55:08 +0400
Sergey Kuznetsov <skuznetsov на comail.ru> wrote:

> Отправка  почты:
> MUA  отдает  почту Postfix'у. Тот ждет соединения с провайдером, затем
> по   команде  sendmail  -q  отправляет  ее  адресату  или  по  адресу,
> прописанному в relayhost.
А так же без команды, автоматом в момент поступления письма в очередь.
Но это характерно больше для хостов с постоянным соединением.
> 
> Получение почты:
> Fetchmail  скачивает  почту  с почтового сервера по команде fetchmail,
> если  есть предварительно созданный файл .fetchmailrc, или fetchmail с
> параметрами,  если такого файла нет. Затем почта передается postfix'у,
> который отдает ее MUA по запросу пользователя.
Точнее, почта передается агенту локальной доставки (procmail), который 
кладет почту в системный почтовый ящик (/var/spool/mail/<user>). Затем
уже MUA забирает (по команде пользователя) почту из спула и кладет
ее в свою собственную базу (напр, ~/Mail/).
> 
> Если  вышеописанное  представление  правильно,  то  для  чего же нужен
> postfix?  Зачем  нужен  еще один  посредник?
> Если я все понял неправильно, то как все обстоит на самом деле? (Речь
> идет о построении почтовой системы В ЦЕЛОМ).

Идея примерно следующая:
Вам необходимо отправить почтовое сообщение пользователю (локальному 
или удаленному). Не забывайте, что процессы в Unix тоже, в некотором 
приближении, рассматриваются как пользователи. Если бы дело ограничивалось
людьми, то настроил пару-тройку MUA, куда ложить почту и все! Но нельзя настроить
массу программ, которые могут выдавать почту для, скажем, root'а и иже с ним.
Т.е. нужен механизм приема "случайных" сообщений, приходящих на стандартный
порт (для smtp - 25). Обмен сообщениями между процессами через порты - стандартная
"фича" Unix (и не только). В случае с удаленным пользователем - более показательный
пример. Он не знает, что вы написали ему письмо (он вообще Вас не знает :), поэтому
запускать fetchmail и смотреть почтовый ящик на Вашем компьютере он не будет 
(да и не сможет, пока не узнает свой логин и пароль :). Тут опять помогает postfix
(правильнее MTA). Он узнает IP адрес вашего адресата и обращается к запущенному
у него агенту MTA. Обмениваются приветами, и ваш передает письмо. Тот смотрит, 
является ли адрес адресата для него локальным - если да, то передает локальному
агенту для разборки и укладывания в соотв. локальный почт. ящик; если нет - смотрит, 
разрешено ли ему релеить это письмо на другой хост, и либо передает, либо дает
вашему MTA "отлуп", дескать relay запрещен.
Короче, таким образом письмо попадает в тот или иной локальный системный 
почтовый ящик. А вот тут может понадобится fetchmail. Если вы реальный
пользователь хоста, т.е. имеет доступ к его терминалу - запускайте MUA и читайте
почту, если же вы удаленный пользователь хоста (не случайный, а имеющий логин
и пароль), то вы можете либо читать почту online, либо перебросить ее на свою машину
и читать offline. Переброской занимается fetchmail. Обращается к POP-серверу удаленного
хоста, логинится и смотрит, есть ли для него почта в системном почтовом спуле, 
если да - забирает ее и передает локальному агент доставки - тот сам разберется, какое 
письмо в какой ящик кинуть, а может вообще в /dev/null (т.е. фильтрация).

Надеюсь, не сильно сумбурно получилось.

-- 
С уважением, 
                  Александр Саввин
----------------------------------
Email:	savvin на mail.ru
ICQ:    103069766		 
----------------------------------
      Powered by Linux Mandrake RE




Подробная информация о списке рассылки community