SMTPUTF8 u přeposílání mailu

RDa

  • *****
  • 3 260
    • Zobrazit profil
    • E-mail
SMTPUTF8 u přeposílání mailu
« kdy: 28. 06. 2026, 12:58:12 »
Ahoj, objevila se chybová hláška u jedné schránky která má forward na seznam.cz - viz chyba:

Kód: [Vybrat]
<*****@seznam.cz>: message requires SMTPUTF8, but no server was found
    that supports SMTPUTF8. The last attempted server was
    mx2.seznam.cz

V emailu vidím že jak subject, tak html tělo je v UTF-8 bez typicky výrazného escapování.

Můj server (nedávno aktualizovaný postfix) tedy podporuje SMTPUTF8 na příjmu, ale další server už nikoliv, jestli tomu dobře rozumím.

Co je tedy zde správné, nebo správnější řešení?

Mám vypnout SMTPUTF8, ať se mi do systému nedostanou "vadné" emaily a tím ukázat prostředníček technologii stylem - mysleli to dobře, ale dopadlo to jako vždycky.

Nebo si mám vytvořit konvertor, kterým proženu mail, když to selže na dané chybě aby se u nás provedlo to přeposlání úspěšně na druhý pokus? (kvůli SPF je příchozí a odchozí trasa jako separátní email, tj nedoručenky jdou ke mě, ne původnímu zdroji).

Email je z eshopu potvrzení objednávky - nevím zda mají nějako dynamickou detekci/generování podle toho zda protistrana nahlásila SMTPUTF8 podporu, nebo to řeší taky konverzí. Z maileru není jasný zda používají knihovnu nebo jenom základní mail():

Kód: [Vybrat]
X-Mailer: PHP/5.6.40-57+0~20211119.60+debian10~1.gbp8a9bd1


Bugsa

  • ***
  • 167
    • Zobrazit profil
    • E-mail
Re:SMTPUTF8 u přeposílání mailu
« Odpověď #1 kdy: 28. 06. 2026, 20:08:42 »
Já to teda také vypnul na našem serveru, protože si to nerozumělo ani s dovecotem.

Re:SMTPUTF8 u přeposílání mailu
« Odpověď #2 kdy: 29. 06. 2026, 08:20:59 »
Pokud máš SMTPUTF8 zapnuté, tak se ti tam při doručení vytvoří UTF8 obálka. Forward zprávy na server co to nepodporuje projde pouze v situaci, že v hlavičkách nemáš žádný non-ascii znak, pak proběhne konverze a doručí se to. Jak se v UTF8 obálce objeví non-ascii znak, tak to neprojde, což je přesně tvůj případ.

To jako admin ale těžko ovlivníš, takže to nakonec vypneš, jako všichni :-(

Offtopic: mail ze kterého to přišlo běží na Debianu 10 s PHP 5.6. Chlubit se tímhle starožitnictvím v hlavičce chce hodně odvahy.

Re:SMTPUTF8 u přeposílání mailu
« Odpověď #3 kdy: 01. 07. 2026, 11:53:24 »
Tohle je rozhodně zajímavé téma!

V emailu vidím že jak subject, tak html tělo je v UTF-8 bez typicky výrazného escapování.
Na těle asi tak úplně nezáleží, ale ta hlavička s předmětem bude problém.

Nebo si mám vytvořit konvertor, kterým proženu mail, když to selže na dané chybě aby se u nás provedlo to přeposlání úspěšně na druhý pokus? (kvůli SPF je příchozí a odchozí trasa jako separátní email, tj nedoručenky jdou ke mě, ne původnímu zdroji).
Tohle zní jako výzva! Ale není nakonec ten způsob přeposílání kamenem úrazu? Protože, co se děje na straně e-shopu:

Email je z eshopu potvrzení objednávky - nevím zda mají nějako dynamickou detekci/generování podle toho zda protistrana nahlásila SMTPUTF8 podporu, nebo to řeší taky konverzí. Z maileru není jasný zda používají knihovnu nebo jenom základní mail():

Kód: [Vybrat]
X-Mailer: PHP/5.6.40-57+0~20211119.60+debian10~1.gbp8a9bd1
…je podle mě výchozí chování většiny SMTP klientů. Pokud jim předáš zprávu v UTF-8 a SMTP podporuje UTF-8, prostě ji předají tak jak je, protože SMTPUTF8 je standard, který věci jen zjednodušuje. Pokud ovšem příjemce SMTPUTF8 nepodporuje, měl by zprávu zakódovat tak, aby ho nepotřebovala. Protože opravdu potřeba je jen v případě, že userpart některé e-mailové adresy obsahuje znaky mimo ASCII. Ve všech ostatních případech je možné hlavičky zakódovat podle RFC 2231.

Takže mi připadá, že je něco špatně s přeposílačem, který odmítá e-mail překódovat podle vlastností serveru příjemce.

RDa

  • *****
  • 3 260
    • Zobrazit profil
    • E-mail
Re:SMTPUTF8 u přeposílání mailu
« Odpověď #4 kdy: 01. 07. 2026, 13:38:34 »
Takže mi připadá, že je něco špatně s přeposílačem, který odmítá e-mail překódovat podle vlastností serveru příjemce.

LLM mi tvrdí, že Postfix neumí konverzi při odesílání (a asi bych souhlasil s tím, že do obálky by se nemělo zasahovat).

Co dělá eshop - hmm... z dávných dob si pamatuji nějakou PHP knihovnu pro generování multipart mejlů co uměla i rovnou se konektit na SMTP, takže nebylo potřeba používat mail nebo system() - což může být i tento případ a pak ona knihovna zajistí vygenerování obálky podle toho, co mu SMTP řekne. Tj. když můj tvrdí, že umí SMTPUTF8, tak se holt escapovat subject a tělo nebude... a pak si to odnesu já až u přeposílání.

To UTF-8 je jak v subject: tak v těle (html) - to rozdíl není.. buď je celá obálka 7-bit a tudíž escapovaná (quoted/encoded), nebo není. Tj. nejde o specifické hlavičky.


jjrsk

  • *****
  • 943
    • Zobrazit profil
Re:SMTPUTF8 u přeposílání mailu
« Odpověď #5 kdy: 01. 07. 2026, 17:19:06 »
V emailu vidím že jak subject, tak html tělo je v UTF-8 bez typicky výrazného escapování.
... hele, a zjistil sis vubec co to je? ...

Protoze z tohoto plyne ze netusis ... protoze nejde o ani subj ani o telo, jde o mailovou adresu.

Jinak receno, SMTPUTF8  === muzes mit email ve formatu ěšččřů@cokoli... podstatny je, ze se to tyce vyhradne te casti PRED zavinacem. Tedy tyce se to tech hlavicek, ktere obsahuji nejakou emailovou adresu.

A co se tyce podpory ... je obecne takova spis nijaka, ani tak nejde o servery, ty to prevazne umej (jina vec je, jestli to maj povoleny), ale spousta klientu te posle do rite pokud se o takovy email pokusis.

Kodovani tela/subj mailserver naprosto nezajima.

RDa

  • *****
  • 3 260
    • Zobrazit profil
    • E-mail
Re:SMTPUTF8 u přeposílání mailu
« Odpověď #6 kdy: 01. 07. 2026, 19:05:35 »
V emailu vidím že jak subject, tak html tělo je v UTF-8 bez typicky výrazného escapování.
... hele, a zjistil sis vubec co to je? ...

Protoze z tohoto plyne ze netusis ... protoze nejde o ani subj ani o telo, jde o mailovou adresu.

Jelikoz se to stalo u 3 mailu (2+1), ktere jsem rucne preposilal at user neprijde o nic, tak jsem se presne dival do zdrojaku tech mejlu.

Pripad e-shopu (ten se starym PHP) obsahuje UTF-8 pouze u Subject: z tech co jsou v headerech, emaily tam jsou bez jmen, jen mailova adresa a ta zadne utf8 prirozene neobsahuje. Dale to tvrdi v headerech Content-Type: text/html; charset=utf-8 a telo zpravy je jedno html, neni to multipart, ani encoded a je nativne v UTF-8.

Druhy pripad - fakturacni systemu ktery leze skrze amazonaws, obsahuje cestinu v Subject, ale ta je spravne quoted. Pak je tam multipart telo (protoze PDF priloha), s touto hlavickou:

Citace
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: 7bit

Ale nasledny html flagment je nativne v utf8 coz je 8-bit "binarka".

Takze z toho mi plyne, ze kdyz seznam.cz SMTP neanoncuje SMTPUTF8, a ja mam pripraven tady ten "binarni" payload, tak to lokalni postfix nema kam poslat.

Jeste by to mohl byt problem postfixu, ze nespravne detekuje potrebu daneho rozsireni, kdyz mu dodavam ten mail k preposlani.

Forward command je tento, parametry jsou escapovany, je to PHP demon co hlida slozku s frontou:

Kód: [Vybrat]
`/usr/sbin/sendmail -f $qfrom $qdest <$qmail`
Chyba se zacala dit az pote co jsem updatoval postfix nedavno.

Ted jsem SMTPUTF8 vypnul, podle prvnich dvou postu v tomto vlakne, zda byl problem i s dovecotem, netusim - preposilani a dovecot jsou u nas vzajemne se vylucujici (co se preposila nepouziva imap, a co pouziva imap se nepreposila, takze nemam tuseni o potencialne chybnem mejlu - leda ze bych si udelal objednavku na stejnem eshopu.. zas az tak me to nezajima uz v teto fazi).

jjrsk

  • *****
  • 943
    • Zobrazit profil
Re:SMTPUTF8 u přeposílání mailu
« Odpověď #7 kdy: 02. 07. 2026, 08:11:24 »
Jenze MTA suject ani body nezajima, stim vubec nepracuje. Tam si muzes napsat uplne cokoli, klidne binarni blob, maximalne ti to pak nezobrazi klient.

Jinak nejde samozrejme jen o hlavicky, tuhle hlasku ( message requires SMTPUTF8, but no server was found that supports SMTPUTF8) dostanes uz v okamziku navazani komunikace, pokud se pokusis pouzivat adresu s nabodenickama.

Obsah mailu je pro dorucovani zcela irelevantni. Tohle ... Content-Type: text/html; charset=utf-8 ... je neco uplne jinyho a nema to se SMTPUTF8 zhola nic spolecnyho.

Sak si to muzes vyzkouset libovolnym telnetem ... jinak tu hlasku velmi typicky dostanes v okamziku, kdy se MTA ktery to umi pokusi mailovat s MTAckem, ktery to neumi, a dozaduje se prave tyhle extenze.

Mimochodem, je to krasna ukazka jak nekdo myslel az vymyslel. Protoze pro tu cast za @ samozrejme taky exiustuje mechanismus (IDN), jak tam dat napodenicka (nebo treba cinstinu...), ale ten je zcela zpetne kompatabilni, takze je to ciste klientside vec. Maximlane tam holt uvidis xn--... pokud to klient neumi.

RDa

  • *****
  • 3 260
    • Zobrazit profil
    • E-mail
Re:SMTPUTF8 u přeposílání mailu
« Odpověď #8 kdy: 02. 07. 2026, 11:31:29 »
Jenze MTA suject ani body nezajima, stim vubec nepracuje. Tam si muzes napsat uplne cokoli, klidne binarni blob, maximalne ti to pak nezobrazi klient.

Pokud tomu nerozumite, tak tady nesirte dokola sve bludy. Jste vedle jak ta jedle. Obsah mailu je proste 7-bit ascii od pocatku veku - zadne binarky. Asi upal nebo nechapu kde na tak zakladni nepochopeni chodite!

Samozrejme ze Subject: ktery neni escapovan a je nativni/binarni (utf8) (tj podle RFC6532) presne tohle zpusobuje.

Po vypnuti SMTPUTF8 u me (na prijmu) zacal dany eshop posilat escapovane jak hlavicku Subject: =?utf-8?b?... - a tak i telo je nyni v base64 (text/html v utf8) .. jak prekvapive, coz?

jjrsk

  • *****
  • 943
    • Zobrazit profil
Re:SMTPUTF8 u přeposílání mailu
« Odpověď #9 kdy: Dnes v 07:54:20 »
Jinak receno, ty se tu na neco ptas, vis o to m lautr hovno, neumis si precist rfc ani dat jeden kratkej string do vyhledavace  tudiz ses uplnej debil.

MTA kodovani mailu VUBEC nezajima a subjekt NEMA se SMTPUTF8 naprosto zhona NIC spolecnyho!!

Eit: Mimohodem, tvoji ebilitu a to hovno co o tom vis jen potvrzxuej to, ze si podle vseho myslis, ze MTA meni obsah mailu lol ... vi soudruho, on mail muze (a dost casto i je) byt podepsany a jajakol;i zmena dubjektu nebo tela by ten podpis, pro tebe zcela nepochopitelne, rozbila. A jestli neco neco dneska ruzny pridadny veci na mailserveru delaj, tak prave kontrolu DKIM, coz ale TY zjevne vubec netusis. Kodovani je CISTE A VYHRADNE klietska vec.
« Poslední změna: Dnes v 08:00:42 od jjrsk »