Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: mikesznovu 29. 12. 2021, 23:59:19

Název: Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: mikesznovu 29. 12. 2021, 23:59:19
Umí  php funkce mail zvlášť pro win i linux posílat mail tak, že komunikuje přímo s mx serverem (MRA asi) příjemce? Tedy není potřeba tuším MSA ani MTA-žádný odesílající smtp server.

V nápovědě php jsem četl že se liší verze: win verze ne(rozumím tím že chce znát odesílající smtp ,linux ano (posílá příkazu sendmail, ale neznamená to že  hovno spadne jen o level níž a.sendmail bude chtít znát odesílající smtp....)

Zdá se mi to divné, tak.si to chci ověřit.
Název: Re:odesílá php mail() přímo cílovému SMTP
Přispěvatel: Filip Jirsák 30. 12. 2021, 00:09:41
Ne a byl by hodně špatný nápad to tak dělat. Sendmail je normální poštovní server, akorát mu PHP nepředává e-mail SMTP protokolem ale přímo voláním binárky. Jak s e-mailem dál naloží Sendmail je už věcí jeho konfigurace. Případně můžete použít jiný poštovní server, je obvyklé, že umí příkazový řádek sendmailu emulovat (alespoň do té míry, aby přes to šlo odeslat e-mail).
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: mikesznovu 30. 12. 2021, 12:47:26
A jaký software by toto zvládl? Třeba nějaký webový framework? (Neptám se pro'ć jetošpatný nápaD.).
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: Filip Jirsák 30. 12. 2021, 13:09:25
Zvládl by co? Odesílat e-maily? Žádný webový framework, to zvládají poštovní servery. Osobně doporučuju Postfix, ale může to být klidně Exim, Qmail, Sendmail…

Nebo v dnešní době je určitě lepší použít na to nějakou službu – SendGrid, Mailgun, něco má v sobě určitě AWS, Google Cloud i Azure.
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: Rob Ros 30. 12. 2021, 16:34:08
PHPMailer (https://github.com/PHPMailer/PHPMailer) umi komunikovat se vzdalenym SMTP, jestli je to to, o co vam jde.

Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: Filip Jirsák 30. 12. 2021, 17:00:45
PHPMailer (https://github.com/PHPMailer/PHPMailer) umi komunikovat se vzdalenym SMTP, jestli je to to, o co vam jde.
Vzdálený SMTP znamená, že mám někde v síti SMTP server, k němu se přihlásím jménem a heslem a všechny e-maily k odeslání předávám tomu jednomu serveru.

Mikesznovu se ptal na komunikaci přímo s cílovým SMTP serverem. Tj. podepsat e-mail pomocí DKIM, v DNS zjistit MX, A nebo AAAA záznam, navázat spojení s cílovým serverem, případně ho povýšit na TLS, pomocí SMTP předat e-mail k doručení –  a pokud server odpoví (třeba kvůli greylistingu) dočasným chybovým kódem, uložit e-mail do fronty a pokusit se ho za chvíli odeslat znovu. I kdyby napadlo někoho tohle celé řešit v rámci jednoho HTTP požadavku a modlit se, aby nevypršel timeout, to odesílání z fronty by takto řešit nešlo a musel by tam být nějaký časovač. Vlastně by to znamenalo naprogramovat celou odesílací část SMTP serveru (včetně fronty) v PHP – a proč by někdo něco takového dělal, když tu dávno máme hotové a spolehlivé SMTP servery, které tohle umí?

A pokud si na počítač nechcete instalovat plnohodnotný SMTP server, dá se tam nainstalovat sSMTP (https://wiki.archlinux.org/title/SSMTP), který umí akorát poslat e-mail nějakému chytřejšímu SMTP serveru, který už se postará o doručení e-mailu.
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: mikesznovu 01. 01. 2022, 22:58:35
Skvělé ½. Víte na co se ptám. Co jsem ale koukal na to sSMTP, zdá se mi že to není. ono. Ale Ten  zmíněný chytřejší SMTP, to asi není cílový SMTP server pro příjemce,  ale  je pořád nějaký mezičlánek, že?
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: RDa 02. 01. 2022, 00:11:19
Jako nerozumim co chcete. PHP mail() na linuxu pouzije sendmail binarku (na win ale nic takoveho neni.. takze to nejspis MUSI komunikovat s cilovym MX), a co se stane dal, je otazkou toho, zda mate treba lokalni postfix instalaci, nebo nejaky relay typu ssmtp (ten pouzivam na serverech, ktere se hlasi na muj korporatni smtp skrze prideleny ucet).

Ceho chcete dosahnout??
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: Skier 02. 01. 2022, 10:04:18
Skvělé ½. Víte na co se ptám. Co jsem ale koukal na to sSMTP, zdá se mi že to není. ono. Ale Ten  zmíněný chytřejší SMTP, to asi není cílový SMTP server pro příjemce,  ale  je pořád nějaký mezičlánek, že?
Jestli tomu dobře rozumím, hledáte takové řešení, kdy by se PHP mail() spojil přímo s cílovým mail serverem a zprávu mu "nějak" předal.

Jestli to je opravdu tak, je to hned z více důvodů nesmysl. Ten hlavní bude asi ten, že se nedá očekávat, že na všech cílových SMTP serverech budete mít Váš vlastní účet, kterým se na ně přihlásíte.

Předpokládám, že se na to celé ptáte kvůli tomu, že ve Vaší síti jsou nějaké restrikce na odchozí traffic na SMTP portech.

Asi by bylo lepší popsat svůj primární problém a na ten potom hledat řešení.
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: Filip Jirsák 02. 01. 2022, 10:12:07
na win ale nic takoveho neni.. takze to nejspis MUSI komunikovat s cilovym MX
Ano, na Windows nic takového není. PHP mail() pak ale nekomunikuje přímo s cílovým serverem, ale s nějakým místním serverem, kterému předá e-mail k odeslání. Stejně, jako to dělá třeba Thunderbird nebo jakýkoli jiný poštovní klient.

Ten hlavní bude asi ten, že se nedá očekávat, že na všech cílových SMTP serverech budete mít Váš vlastní účet, kterým se na ně přihlásíte.
Tohle je nesmysl. Když někam posíláte e-mail, žádný účet na tom serveru samozřejmě nemáte.

Důvod, proč běžný klient (ať už funkce mail() nebo třeba Thunderbird) neposílá rovnou cílovému serveru, je ten, že  takové odesílání je docela komplikovaná věc, která zahrnuje např. udržování fronty zpráv k odeslání a opakované pokusy o odeslání e-mailů z té fronty. Je nesmyslné něco takového programovat v každém klientovi zvlášť, navíc PHP ani Thunderbird neběží trvale, takže by nemohly obsluhovat tu frontu zpráv k odeslání.

Asi by bylo lepší popsat svůj primární problém a na ten potom hledat řešení.
Souhlas.
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: RDa 02. 01. 2022, 16:14:44
na win ale nic takoveho neni.. takze to nejspis MUSI komunikovat s cilovym MX
Ano, na Windows nic takového není. PHP mail() pak ale nekomunikuje přímo s cílovým serverem, ale s nějakým místním serverem, kterému předá e-mail k odeslání. Stejně, jako to dělá třeba Thunderbird nebo jakýkoli jiný poštovní klient.

Jo, to me pak vzapeti napadlo, ze by byla blbost komunikovat naprimo.

Ale pokud jsou ty php.ini optiony ohledne nastaveni "serveru odchozi posty" (host/port/user/pass) aplikacne menitelne, asi nic nebrani si resolvnout MX, pre-nastavit konfiguraci a poslat to tam naprimo (bez uctu, bez hesla). Jen nevim co by pak jako uzivatel (skript) delal s docasnymi chybami, pokud to ma zaroven bezet zpod http requestu :-) U cli-php jsou ty moznosti o neco lepsi.
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: mikesznovu 02. 01. 2022, 19:03:27
>Skier
Ano, hledám řešení, které bude komunikovat  přímo s MX serverem pro danou doménu příjemce
Ne, na síti restrikce nemám.  Spojení na port 25 mi fungovalo, posílání mailů fungovalo. Ale šlo o odlišnou věc než je téma dotazu, tam jsem se přihlašoval na "SMTP" server poskytovatele mé schránky "pod mým" účtem- klasické údaje pro  odeslání ze skriptů nebo údaje pro TheBat,Mozilla







>Filip Jirsák > Skier
Ano, to je nesmysl, vždyť přece nelze očekávat, že uživatel gmailu (nebo vlastní služby) bude mít  (rozdá)své přihlašovací údaje všem možný poskytovatelům mailu  (a seznamu). když chce  někdo z gmail poslat mail někomu na seznamu,  se hlásí jen na gmail a smtp servery gmail už to posílají na smtp seznamu bez nich*


>RDa (2.)
To už jsem taky bezúšpěně zkusil na dvě domény  přes PHPMailer (s Debuglevel 4) - jako smtp server nastavit `host -tMX prijemcuvmailzazavinacem.cz`, zkoušel jsem 587 i 465. Samozřejmě bez autentizace, jak psal Filip Jirsák. V jednom případě to psalo,že to chce autentizaci uživatele*., v druhé asi taky . Tedy nenastavoval jsem přesně php.ini, protože jsem používal knihovnu $m=new PHPMailer();$m->isSMTP();


* No a tady vzniká spor: proč tedy mx server (ne smtp) těch domén po mě chtěl credentials, když posílám z jiné domény? Nebo existuje nějaký způsob mezi-smtp autentizace? (když zpráva přechází z serveru jednoho poskytovatele na druhého?)

----
A jde mi spíš o proof of concept, něco takového naostro provozovat je šílenost jak psali někteří. Hned teď mě napadá taková samozřejmost jako odeslání mailu více příjemcům na různých doménách. Na "místní" SMTP by stačilo odeslat zprávu jednou, kdežto takhle by se muselo rozparsovat (roz"partition"ovat po anglicko-česku) seznam příjemců dle domén.
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: BobTheBuilder 02. 01. 2022, 19:47:58
Jako nerozumim co chcete. PHP mail() na linuxu pouzije sendmail binarku (na win ale nic takoveho neni.. takze to nejspis MUSI komunikovat s cilovym MX), a co se stane dal, je otazkou toho, zda mate treba lokalni postfix instalaci, nebo nejaky relay typu ssmtp (ten pouzivam na serverech, ktere se hlasi na muj korporatni smtp skrze prideleny ucet).

Ceho chcete dosahnout??
Ano, otázka je, co je cílem.
Ale aplikace nemůže odesílat maily (SMTP) přímo cílovým serverům, protože:
1) nemá jak podepsat zprávu (DKIM - nemá privátní klíč)
2) nejspíš nebude IP stroje v SPF (a pokud by používal stejnou IP - NAT - je to ideální způsob, jak dostat svou doménu a IP adresu na blacklist/blocklist)
3) nezařídí frontu (momentálně nedostupný, greylisting)
4) neumožní přijmout a zpracovat odpověď (což může být zpráva o chybě doručení)
Ty parametry v php.ini jen umožní definovat, jak se mail k odeslání předá místnímu mail serveru ke zpracování - jestli přímo lokálnímu maileru v režimu relay, nebo přes SMTP - ale zase jen serveru v místní síti), kde ta volitelná autentizace je pro místní účet odesílatele.
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: Filip Jirsák 02. 01. 2022, 20:24:53
Ano, hledám řešení, které bude komunikovat  přímo s MX serverem pro danou doménu příjemce
Libovolný plnohodnotný poštovní server – Postfix, Exim, qmail, Sendmail, Microsoft Exchange. Už jsem to tu psal. Nějaké řešení jako naprogramovat si plnohodtného SMTP klienta s frontou a DKIM podepisováním je nesmysl.

No a tady vzniká spor: proč tedy mx server (ne smtp) těch domén po mě chtěl credentials, když posílám z jiné domény?
Protože ten server neobsluhuje doménu, na kterou e-mail posíláte. Server tedy usoudí, že po něm chcete, aby zařídil odeslání předávaného e-mailu – a to dělá jenom pro „své“ uživatele, kteří se autentizují jménem a heslem.

Je to rozdíl mezi MTA (Mail transfer agent) a MDA (Mail delivery agent). MDA naslouchá na portu 25 a doručuje e-maily pro konkrétní doménu (nebo domény) do schránek. MTA naproti tomu převezme e-mail od klienta (poštovní program jako Thunderbird nebo funkce mail() v PHP), zařadí jej do fronty a pak se jej pokouší předat cílovému MTA. MDA vyžaduje obvykle autentizaci jménem a heslem – musí vědět, že doručuje e-mail pro „své“ klienty. MDA naslouchá na portu 587. Dříve ale MDA také naslouchal na portu 25, obvykle to z důvodu zpětné kompatibility zůstává zachováno – takže v tom vašem případě jste se připojil právě k MDA.

No a tady vzniká spor: proč tedy mx server (ne smtp) těch domén po mě chtěl credentials, když posílám z jiné domény?
Chtěl je po vás proto, že jste komunikoval se serverem, který neobsluhuje schránky pro doménu, kam jste chtěl e-mail doručit. Nekomunikoval jste se serverem, který byste nalezl v DNS (pod MX nebo jako A/AAAA záznam). Pokud jste se k němu chtěl připojit, ale připojil jste se k jinému serveru, nejspíš váš ISP unáší provoz na portu 25 na svůj server.

A jde mi spíš o proof of concept
Pořád ale envím, co má být cílem. Naimplementovat plnohodnotný MTA v PHP?
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: _mbily 02. 01. 2022, 21:08:23
Pane mikeshznovu, možná máte nějaké důvody, proč věc chcete řešit tak, jak jste uvedl v prvním příspěvku. Ale spíš se domnívám, že neznáte všechny souvislosti týkající se mailového provozu. Zkusím napsat, jak a proč bych podobnou věc řešil já. Kolegové vás stejným směrem v rámci debaty jak vidím tlačí, já to zkusím shrnout a snad tomu dát nějaký zastřešující nadhled.

Vycházím z této situace: Mám linuxový či obecně unixový stroj (k případnému řešení na Windows se nevyjadřuji). Na tom linuxu běží webová aplikace psaná v php, je potřeba z ní odesílat maily. S použitím phpmaileru, budiž. K tomu serveru mám plný (rootovský) přístup. Není to školní či hobby úloha, budeme uvažovat produkční nasazení, ať už to slovo znamená cokoliv.

Phpmailer nastavím tak, aby maily odesílal na smtp server s adresou 127.0.0.1, port 25, bez autentizace. Tedy nějaké smtp službě běžící na tom serveru s webovou aplikací. Z pohledu té aplikace jde o jednoduché, přímočaré řešení. Aplikace mail předala smtp protokolem někam dál, a o další existenci a způsobu doručování toho mailu se nestará, nechce starat ani zajímat.

Na tom vašem serveru nechť je instalován postfix (nebo exim či sendmail). Budiž nastaven tak, aby naslouchal pouze na loopbacku 127.0.0.1, čili není potřeba řešit o něco složitější nastavení kvůli tomu, aby server nemohl být zneužíván třetí stranou k šíření spamu (open relay). Na veřejném rozhraní maily tedy nepřijímá, ale odesílat je v režimu smtp klienta dokáže.

To co vidím jako zásadní je, že od tohoto okamžiku dokážete na úrovni php aplikace mail rychle předat nějakému poštovnímu serveru. A nemusíte řešit situace kdy cílový či nějaký zprostředkující smtp server maily dočasně z jakéhokoliv důvodu nepřijímá, nebo stav kdy došlo někde "na cestě" ke ztrátě ip konektivity. Váš lokální postfix drží mail u sebe ve frontě a sám podniká opakované pokusy o doručení.

Aby ten mail byl protistranou úspěšně přijat a nebyl protějším smtp serverem považován za spam, tak k tomu je potřeba splnit celou řadu dalších požadavků a použít technologie, jejichž zkratkami tu raději ani nebudu pohazovat. Jen takové zahřívací dotazy: generujete maily včetně správně sestaveného řádku Message-Id:? Máte správné MIME hlavičky počínaje MIME-Version:? (phpmailer znám jen z rychlíku, možná se o to stará sám)

Abyste těmi poštovními technologiemi neztrácel zbytečně mnoho úsilí a času, tak kvůli tomu jednotliví ISP provozují skutečné poštovní servery. Do vašeho lokálního postfixu stačí doplnit pár dalších řádek (adresa takového serveru plus autentizační údaje). Server Vašeho ISP pak je ochoten Váš mail převzít a sám už zařídí vše potřebné, např. DKIM podpisy. Nu a pak ten mail odešle na cestu směrem k příjemci. Samozřejmě obdobně můžete místo Vašeho ISP využít i servery gmailu či seznamu.

Nezmínil jsem otázku zpráv o nedoručitelnosti. Adresa příjemce může být chybná, nebo zanikla atp. Zprávy o nedoručení nebudete schopen přijímat smtp serverem na Vašem webovém stroji, protože on zprávy ze světa vůbec nedokáže přijmout. Je potřeba mít celkové nastavení takové, aby nedoručenky končily ve vašem mailboxu u ISP.

Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: _Jenda 03. 01. 2022, 06:45:44
To už jsem taky bezúšpěně zkusil na dvě domény  přes PHPMailer (s Debuglevel 4) - jako smtp server nastavit `host -tMX prijemcuvmailzazavinacem.cz`, zkoušel jsem 587 i 465.
Jestli jste si ještě nevšiml, tak pro submission z internetu se používá 25. (no a podobně úspěšné budou vaše další pokusy o přímé doručování pošty - počkejte si třeba na ten greylisting  ::) )
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: BobTheBuilder 03. 01. 2022, 07:28:57
To už jsem taky bezúšpěně zkusil na dvě domény  přes PHPMailer (s Debuglevel 4) - jako smtp server nastavit `host -tMX prijemcuvmailzazavinacem.cz`, zkoušel jsem 587 i 465.
Jestli jste si ještě nevšiml, tak pro submission z internetu se používá 25. (no a podobně úspěšné budou vaše další pokusy o přímé doručování pošty - počkejte si třeba na ten greylisting  ::) )
Pro submission se používá 587/STARTTLS - ale je to skutečně submission - tedy pro oprávněného uživatele serveru příslušné domény s autentizací.
Port 465 je totéž, co port 25, ale SSL - tedy pro komunikaci mezi servery. S autentizací se používá i jako submit, ale to je spíš pozůstatek minulosti. Autentizace na portu 25/465 pak rozliší, zda server bude ochoten dělat relay nebo ne.
Ať tak nebo tak, mail odesílaný z domény x.y musí odesílat server (ne nějaká aplikace), který má přímý i reverzní záznam v DNS, zná klíč pro DKIM, má IP adresu, která je v SPF, spravuje fronty, přijímá zprávy o nedoručení atd.
Pro webovou aplikaci php.ini jen říká, jak udělat submit - tedy kde je server mé vlastní domény a jak mu prokážu, že jsem oprávněný odesílatel, případně která lokální aplikace se o tohle postará za mě.
Aplikace (webová/php) je KLIENT a tazatel se pokouší z ní udělat SERVER. To je nesmysl, fungovat to nemůže.
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: Filip Jirsák 03. 01. 2022, 10:16:23
Ať tak nebo tak, mail odesílaný z domény x.y musí odesílat server (ne nějaká aplikace), který má přímý i reverzní záznam v DNS, zná klíč pro DKIM, má IP adresu, která je v SPF, spravuje fronty, přijímá zprávy o nedoručení atd.
Když něco odesílá e-mail, je to klient – navazuje SMTP spojení k serveru. Server (třeba Postfix) je také aplikace, a jakákoli aplikace může odesílat e-maily přímo cílovým serverům z počítače, který je uvedený v SPF, má správný reverzní záznam. Jenom ta aplikace musí umět e-mail podepsat pomocí DKIM. Teda ona by se o to aplikace mohla pokoušet i bez toho všeho, ale pak by e-mail byl s velmi vysokou pravděpodobností vyhodnocen jako spam. No a pak je samozřejmě nutné vyřešit to, že se e-mail nemusí podařit odeslat na první pokus (tj. nějaká fronta zpráv).

Vedle plnohodnotného klienta, který umí e-maily odesílat přímo cílovým serverům, existuje i „hloupý“ klient, který umí e-mail předat jenom nějakému chytřejšímu serveru (smart relay) a nic jiného neřeší. Takovýhle hloupý klient je třeba v poštovích klientech (Thunderbird, Outlook), je v PHP na Windows (implementace funkce mail()) nebo to existuje jako samostatná aplikace (např. sSmtp). Pro tuhle komunikaci od hloupého SMTP klienta k chytrému se nově používá port 587 (dříve se používal také port 25). Smart relay samozřejmě nemůže rozesíla te-maily pro každého, kdo mu e-mail předá – toho by okamžitě začali zneužívat spameři. Musí nějak poznat „své“ hloupé klienty, kterým důvěřuje, že nebuduo rozesílat spam. Dříve bylo běžné, že smart relay dovoloval posílat e-maily všem počítačům z místní sítě, nyní to obvykle bývá chráněné navíc ještě jménem a heslem – aby to útočník, který napadne nějaký počítač v místní síti a chce rozesílat spam, neměl tak jednoduché.

Pro někoho může být matoucí, že to, co se obvykle nazývá e-mailový server (třeba ten Postfix) obvykle plní úlohu klienta i serveru. Ale je to poměrně jednoduché, ta strana, která e-mail přes SMTP odesílá, je vždy klient; ta, která přes SMTP e-mail přijímá, je vždy server.

Klidně by bylo možné v PHP implementovat plnohodnotného SMTP klienta, ale proč by to někdo dělal?
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: BobTheBuilder 04. 01. 2022, 07:02:18
Když něco odesílá e-mail, je to klient – navazuje SMTP spojení k serveru. Server (třeba Postfix) je také aplikace, a jakákoli aplikace může odesílat e-maily přímo cílovým serverům z počítače, který je uvedený v SPF, má správný reverzní záznam. Jenom ta aplikace musí umět e-mail podepsat pomocí DKIM. Teda ona by se o to aplikace mohla pokoušet i bez toho všeho, ale pak by e-mail byl s velmi vysokou pravděpodobností vyhodnocen jako spam. No a pak je samozřejmě nutné vyřešit to, že se e-mail nemusí podařit odeslat na první pokus (tj. nějaká fronta zpráv).
...
No, chtěl jsem se tomu vyhnout, ale pořád se tady pletou dohromady a zaměňují MUA, MTA a MDA.
mail() v php je funkce pro odeslání MUA (mail user agent). Postfix/sendmail/exchange je MTA (message transfer agent) a někdy současně MDA (message delivery agent - v cílové doméně doručuje do schránek, exchange sám, jinde je to třeba procmail).
Ten, kdo posílá mail do cílové domény, je MTA, běží jako service (aby mohl spravovat fronty, přijímat maily, předávat  atd.).
MUA nemá co dělat s MX záznamy apod., ten jen předá příslušnému MTA mail od uživatele k odeslání (analogie ve fyzickém světě: dáte dopis na poštu). MTA zařídí předání správným směrem k cílovému MTA (analogie: převoz zásilek z Prahy do Tábora), který v cíli dopis předá MDA (analogie: poštovní doručovatel dopis vhodí do domovní schránky), odkud si to adresát prostřednictvím MUA vyzvedne a přečte.
Název: Re:Odesílá php mail() přímo cílovému SMTP?
Přispěvatel: Filip Jirsák 04. 01. 2022, 08:55:05
Dá se to i pěkně schematicky znázornit, jak e-mail putuje:

MUA odesílatele → MTA → MDA → poštovní schránka (ze které si jej vyzvedne MUA adresáta)

Případně těch MTA může být několik za sebou:

MUA odesílatele → MTA → MTA → MTA → MDA → poštovní schránka.