На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Как работает почта?
    САБЖ.
    Интересует, что происходит с письмом после того, как его на SMTP сервер заслали.
      В VMS'е по крайней мере (mail) письмо скидывается в общий пул, а там когда ты ломиться начинаешь к тебе в директорию копируется...
        А если не VMS? Я VMS уже года полтора не пользовал  ;D
          Тады ой. Думаю где как (в смысле конкретные реализации под разные системы могут по разному сохранять письмо: в отдельный файл/в пул и соответствено в userdir/еще куда-то). Смотреть надо отдельно...
            Уточню вопрос. Есть 2 почтовых сервера, они сидят в одной сетке. У каждого сервера есть 1 абонент (т. е. всего 2 абонента). Первый абонент посылает второму письмо через свой сервер. Откуда сервер первого юзера знает, куда кидать дальше?
              Дык оттуда же откуда твоя машина видит сетевое окружение.
                Цитата andyag, 05.08.02, 20:13:55
                Откуда сервер первого юзера знает, куда кидать дальше?

                Сервер ломится на ДНС-сервак и вычисляет айпишник того, что в адресе идёт после лягушки. Вычислив айпишник, он пытается установить соединение на 25-ом порту. Если соединение установлино, то дальше вступает в действие протокол SMTP (http://www.sources.ru/protocols/smtp_learning.shtml)
                  т. е. если e-mail правильный, то домен, который после кракозяблы, всегда соответствует какой-то машине с smtp?
                    О! А можно вместо домена писать ip?
                      Цитата andyag, 06.08.02, 15:11:42
                      О! А можно вместо домена писать ip?

                      А почему бы нет?
                        Цитата Song, 06.08.02, 15:54:36

                        А почему бы нет?

                        ;)
                        Потому, что многие мыльницы, например QMail, позволяют подключать почтовых роботов для разбора входящей/проходящей почты, например ProcMail, для реализации альтернативных маршрутов писем на основании результатов анализа почтового адреса. Регулируется это правилами. Но мало кто (а может и никто??? ) для реализации одного альтернативного маршрута использует два правила - для адреса с "нормальным" доменным именем и с именем, содержащим ИП-адрес. И момент №2 - любой "переезд" к новому провайдеру в большинстве случаев почтовый адрес, содержащий IP, сделает "недействительным".

                        ИМХО: формально использовать можно, но лучше "низя" :)
                          Люди, прокомментируйте такую фишку:
                          ExpandedWrap disabled
                            Microsoft Windows 2000 [Version 5.00.2195]<br>(C) Copyright 1985-2000 Microsoft Corp.<br><br>C:\>telnet yandex.ru 25<br>Connecting To yandex.ru...Could not open a connection to host on port 25 : Connect failed<br><br>C:\>


                          А ведь у меня есть e-mail andyag@yandex.ru
                            Может потому что телнет то 23 порт пользует а не 25-й
                              Цитата d_k, 06.08.02, 22:58:55
                              Может потому что телнет то 23 порт пользует а не 25-й
                              Telnet, как протокол - да, но как прога - любой :-)
                                Цитата andyag, 06.08.02, 20:51:56
                                Люди, прокомментируйте такую фишку:
                                ExpandedWrap disabled
                                  Microsoft Windows 2000 [Version 5.00.2195]<br>(C) Copyright 1985-2000 Microsoft Corp.<br><br>C:\>telnet yandex.ru 25<br>Connecting To yandex.ru...Could not open a connection to host on port 25 : Connect failed<br><br>C:\>


                                А ведь у меня есть e-mail andyag@yandex.ru


                                Коментирую фишку:  ;D
                                ты пытаешься на сервере yandex.ru открыть 25 порт и в телнете "пообщаться" с SMTP-серваком. Ты уверен что именно на yandex.ru этот сервак установлен.

                                1) Смотрим IP этого сервака (ping резольвит для нас yandex.ru в 213.180.194.129)
                                2) "Спрашиваем" DNS-сервер про почтовые записи (MX - Mail Exchange), на что он отвечает:
                                ExpandedWrap disabled
                                  <br>Query:Mail Exchange (MX):yandex.ru<br>yandex.ru      MX      10      mx2.yandex.ru<br>yandex.ru      MX      0      mx1.yandex.ru<br>yandex.ru      NS      ns1.yandex.ru<br>yandex.ru      NS      ns.ispm.ru<br>mx2.yandex.ru      A      213.180.193.14<br>mx2.yandex.ru      A      213.180.193.106<br>mx1.yandex.ru      A      213.180.193.14<br>mx1.yandex.ru      A      213.180.193.106<br>ns1.yandex.ru      A      213.180.193.1<br>ns.ispm.ru      A      195.19.27.2<br>Complete: yandex.ru<br>

                                3) Смотрим, где же есть почтовые сервера этого домена. Ба! Да вот же они:
                                mx1.yandex.ru
                                mx2.yandex.ru
                                4) На всякий случай "уточним" их IP-адреса с помощью того же ping'а:
                                mx1.yandex.ru - 213.180.193.14
                                mx2.yandex.ru - 213.180.193.14

                                Вывод: почтовые сервера расположены по адресу 213.180.193.14 и возможно еще тут - 213.180.193.106. Ты же пытался ломануться на 213.180.194.129, что не есть правильно! ;)

                                P.S. Не надо искать черного добермана на темной охраняемой стоянке, особенно если он там есть.  ;D

                                Сообщение отредактировано: JoeUser -
                                  Да, кстати, чтобы убедиться что все это именно так, проверяем:

                                  telnet mx1.yandex.ru 25

                                  получаем:

                                  ExpandedWrap disabled
                                    <br>220 Yandex ESMTP (NO UCE)(NO UBE) server ready at Wed, 7 Aug 2002 17:03:44 +0400<br>


                                  что и следовало доказать. ;)
                                    Ага! Значит мне раньше неправильно сказали!  ;D

                                    2 JoeUser: греат сенкс, меня этот вопрос давно мучал.
                                    А чем ты делал запрос у DNS про этот MX?
                                      Цитата andyag, 07.08.02, 18:42:16
                                      Ага! Значит мне раньше неправильно сказали!  ;D

                                      Ну да, чутка неправильно. Фаза поиска почтовых серверов немного не указана ;)
                                      Цитата

                                      2 JoeUser: греат сенкс, меня этот вопрос давно мучал.
                                      А чем ты делал запрос у DNS про этот MX?

                                      Расти большой :)
                                      А запрос к DNS делал nslookup'ом, но не стандартным, а каким-то другим (GUI). Он у меня уже триста лет есть, я и не помню где его брал, а он "про себя ничего не говорит".
                                        А вообще, эти MX, они в любом DNS есть?
                                          Кстати и обычным nslookup'ом не сложнее. Перед вводом yandex.ru надо выполнить set type=MX и все.
                                            Цитата andyag, 07.08.02, 19:05:58
                                            А вообще, эти MX, они в любом DNS есть?

                                            Они в DNS могут быть, а могут и не быть (в случае отсутствия почтовых серверов в домене). Но, если админ желает чтобы его SMTP-сервак был работоспособным, он просто обязан зарегистрировать его в DNS (читай внести MX запись).

                                            Для полного понимания рекомендую прочесть какой-нить мануал по DNS.
                                              т. е. в этот nslookup нужно подставлять уже сам домен e-mail'а?
                                              ExpandedWrap disabled
                                                C:\>nslookup<br>Default Server:  serv1.vsi.ru<br>Address:  80.82.32.9<br><br>> set type=mx<br>> yandex.ru<br>Server:  serv1.vsi.ru<br>Address:  80.82.32.9<br><br>Non-authoritative answer:<br>yandex.ru       MX preference = 10, mail exchanger = mx2.yandex.ru<br>yandex.ru       MX preference = 0, mail exchanger = mx1.yandex.ru<br><br>yandex.ru       nameserver = ns1.yandex.ru<br>yandex.ru       nameserver = ns.ispm.ru<br>mx2.yandex.ru   internet address = 213.180.193.106<br>mx2.yandex.ru   internet address = 213.180.193.14<br>mx1.yandex.ru   internet address = 213.180.193.106<br>mx1.yandex.ru   internet address = 213.180.193.14<br>ns1.yandex.ru   internet address = 213.180.193.1<br>ns.ispm.ru      internet address = 195.19.27.2<br>>
                                                Цитата JoeUser, 07.08.02, 19:18:14

                                                Они в DNS могут быть, а могут и не быть (в случае отсутствия почтовых серверов в домене). Но, если админ желает чтобы его SMTP-сервак был работоспособным, он просто обязан зарегистрировать его в DNS (читай внести MX запись).

                                                Для полного понимания рекомендую прочесть какой-нить мануал по DNS.
                                                Значит, впринципе, можно засылать письмо сразу на сервер абонента, минуя свой почтовый сервер?
                                                  Цитата andyag, 07.08.02, 19:23:35

                                                  Значит, впринципе, можно засылать письмо сразу на сервер абонента, минуя свой почтовый сервер?

                                                  Конечно. Только есть одно "но". Почти все грамотные SMTP-серваки резольвят домен отправителя (команда MAIL FROM) и если такового в DNS нет, то пробрасывают. Есть и еще различные фишки. Это все борьба со спамерами.
                                                  Сообщение отредактировано: JoeUser -
                                                    Гы. Сколько раз слал с billgates@microsoft.com - всегда работала  ;D
                                                      ...через SMTP-релей (читай "через провайдера") отправлять лучше, дешевле будет. Представь что в твоем письме 123 адресата. Тогда, если захочешь через MX - надо будет отправлять 123 раза. Если же через релей, то 1 раз.
                                                        Цитата andyag, 07.08.02, 19:35:17
                                                        Гы. Сколько раз слал с billgates@microsoft.com - всегда работала  ;D

                                                        Для админов - это удар ниже пэйджера.  ;D
                                                          Прочитай мыло ;)
                                                            Цитата andyag, 07.08.02, 19:43:36
                                                            Прочитай мыло ;)

                                                            так я ж и не спорю :)
                                                            Цитата

                                                            retr 1
                                                            +OK 200 octets follow.
                                                            Return-Path: <billgates@microsoft.com>
                                                            Delivered-To: melnikov@softhome.net
                                                            Received: (qmail 23382 invoked by uid 417); 7 Aug 2002 15:42:25 -0000
                                                            Received: from nasx-d179.dial.vsi.ru (HELO ) (80.82.38.179)
                                                             by 192.168.0.30 with SMTP; 7 Aug 2002 15:42:25 -0000
                                                            hello there :)
                                                            .


                                                              Цитата JoeUser, 07.08.02, 19:50:51
                                                              так я ж и не спорю :)
                                                              ;D
                                                              А ты не знаешь, случайно, как в w2k, в телнете включить эхо?
                                                                Уже нашел: set LOCAL_ECHO
                                                                  Цитата andyag, 07.08.02, 19:54:20

                                                                  ;D
                                                                  А ты не знаешь, случайно, как в w2k, в телнете включить эхо?

                                                                  Знаю. ;)
                                                                  Берешь telnet.exe от MD'98 включаешь эхо и юзаешь.
                                                                    Цитата JoeUser, 07.08.02, 19:58:26

                                                                    Знаю. ;)
                                                                    Берешь telnet.exe от MD'98 включаешь эхо и юзаешь.
                                                                    Не, меня консоль больше прикалывает. Только, вот, как покрасить буквы в зеленый цвет?  ;D ;D ;D
                                                                      Цитата andyag, 07.08.02, 20:15:50

                                                                      Не, меня консоль больше прикалывает. Только, вот, как покрасить буквы в зеленый цвет?  ;D ;D ;D

                                                                      Run->Telnet->Свойства->Цвета (Малиновый по зеленому)->Ok  ;D
                                                                        ExpandedWrap disabled
                                                                          Microsoft Telnet> help<br><br>Commands may be abbreviated. Supported commands are:<br><br>close           close current connection<br>display         display operating parameters<br>open            connect to a site<br>quit            exit telnet<br>set             set options (type 'set ?' for a list)<br>status          print status information<br>unset           unset options (type 'unset ?' for a list)<br>?/help          print help information<br>Microsoft Telnet>

                                                                        Где?
                                                                          Свойства консольного окна  ;)
                                                                            Цитата JoeUser, 08.08.02, 14:35:21
                                                                            Свойства консольного окна  ;)
                                                                            Гм. Торможу я...  :-/
                                                                              Цитата andyag, 08.08.02, 14:46:40

                                                                              Гм. Торможу я...  :-/

                                                                              Значит тебе зеленые буквы в терминале еще рано делать  ;D
                                                                                Цитата JoeUser, 08.08.02, 14:52:51

                                                                                Значит тебе зеленые буквы в терминале еще рано делать  ;D
                                                                                Поздно, скорее :-)
                                                                                  2JoeUser
                                                                                  НАсчет MX записей в DNS
                                                                                  это что же выходит, надо узнавать какие  IP используются для mail для того, тчобы отослать почту на тот же yandex.ru? а как это программно будет выглядеть?
                                                                                  можно ли как-то программно узнать тот же мэйловый IP?
                                                                                    Цитата Demo_S, 19.08.02, 21:39:33
                                                                                    2JoeUser
                                                                                    НАсчет MX записей в DNS
                                                                                    это что же выходит, надо узнавать какие  IP используются для mail для того, тчобы отослать почту на тот же yandex.ru?

                                                                                    Ну это самый "неудобный" способ. Лучше всего если твой провайдер откроет для тебя SMTP-релей. Тогда никаких DNS, передал письмо на провайдера, а дальше его "головная боль" - DNSы напрягать, почтовики искать...
                                                                                    Цитата

                                                                                    а как это программно будет выглядеть?
                                                                                    можно ли как-то программно узнать тот же мэйловый IP?
                                                                                    Программно не знаю, не делал таких прог. Но порядок примерно таков:
                                                                                    - определяешь DNS, используемый системой
                                                                                    - делаешь запрос на MX записи домена
                                                                                    - если DNS недоступен, "смотришь" следующий  DNS (в системе их может быть не один а несколько)
                                                                                    - если ответ от DNS нормальный, резольвишь первичный почтовый сервер и пытаешься передать почту
                                                                                    - если не получается (сервер недоступен, сервер не принял почту) пробуешь следующий (обычно в домене их более одного - первичный и резервные)

                                                                                    Как это делается программно - не делал, поэтому сейчас не знаю. Для написания очень рекомендую почитать соответствующие RFC.  Линков не дам, т.к. "навскидку" не помню.
                                                                                    Сообщение отредактировано: JoeUser -
                                                                                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                    0 пользователей:


                                                                                    Рейтинг@Mail.ru
                                                                                    [ Script execution time: 0,0919 ]   [ 15 queries used ]   [ Generated: 27.04.24, 16:04 GMT ]