Newsgroup: it.comp.www.php
Titolo: multibyte nell'header from:

Salve a tutti,
 
sono anni che uso questa funzioncina:
 
function
inviaMail($mittenteAddress,$mittenteNome,$destinatarioAddress,$Oggetto,$
Corpo) {
 
$Intest = "From: $mittenteNome <$mittenteAddress>\n";
$Intest .="Mime-Version: 1.0\n";
$Intest .="Content-type: text/plain; charset=utf-8\n";
$Intest .="Content-Transfer-Encoding: 8bit\n";
$Intest .="Reply-To: $mittenteAddress\n";
 
mail($destinatarioAddress,$Oggetto,$Corpo,$Intest);
 
}
 
che non ha mai fallito. L'email giunge regolarmente a destinazione, e i
caratteri ascii > 127 (nel $Corpo) sono sempre ben codificati. 
 
Giorni fa ho avuto una sorpresa: dal sito web mi ha scritto un tizio di
nome Niccolò, cioè con un ascii > 127 contenuto nel nome; e io, nel
campo «From:» che ho ricevuto in email, ho visto un singolare
"Niccol√≤".
 
Ovviamente non è un gran problema (se non lo risolvo pace), ma se vi
venisse un'idea per l'opportuna codifica anche del From:, ve ne sarei
grato. 
Le mie ricerche su Google hanno portato solo all'annosa questione dei
"caratteri strani" nel corpo dell'email, non ad altro. 
 
TIA

 grato. 
 
La pagina in cui c'è il form che charset usa? Puoi riprodurre il 
problema?
 
Magari è il suo browser che non rispetta il charset della pagina quando 
invia la richiesta.

 invia la richiesta.
 
Non credo proprio: una volta scoperta la magagna, mi sono auto-inviato
varie mail chiamandomi Giosuи, Fefи, Mimм, ааааааа, щщщщщщщ, ммммммм.
Nel corpo mail и tutto in regola, mentre nel campo From: ci sono sempre
e solo sgorbi orripilanti.
 
No, il guaio и altrove. Ma grazie lo stesso.
 
-- 
mailto: y = i
------------------------------------------------------
http://www.catarsi.it
 
Vivo nel terrore di non essere frainteso (Oscar Wilde)

 From: ci sono sempre e solo sgorbi orripilanti.
 
Intendevo proprio questo con "riprodurre", quindi non è solo il browser 
di Niccolò.
 
Ho un vago ricordo che nelle email (e in NNTP) nel campo subject non 
vadano usati i caratteri oltre ASCII 7-bit perché quei campi sono prima 
degli header che dichiarano il charset e quindi non rientrano nella 
dichiarazione stessa, motivo per cui nei subject andrebbero evitate le 
accentate. Magari questo ti dà uno spunto per trovare qualche info più 
adeguata.

 accentate. 
 
Sì, lo ricordo anch'io, tant'è che su usenet me ne guardo bene da
accentare le vocali nel subject. Però è singolare che in php, nell'era
dell'utf8, non ci sia modo di "charsettare" gli header di una mail.
 
Sul manuale ufficiale, tra i commenti degli utenti, c'è un workaround
per l'ascii > 7bit nel subject, ma non si fa accenno al From o ad altro
header.
 
Mi sembra strano perché col mio vecchio client di posta (ho ancora
Eudora), se voglio, posso tranquillamente scriverti sotto le mentite
spoglie del francese Marcó Catarsì, e tu negli header vedi né più né
meno:
 
From: Marcó Catarsì <m...@indirizzo.reale>
Subject: ascentó ascentì
 
Peraltro, se non sbaglio, da qualche tempo esistono domini con lettere
accentate, quindi anche gli indirizzi email conterranno ascii esteso. E
che succede all'utente con email <utenté@dominió> che - via php - vuole
scriverti dal web? Con questo From:  
 
From: utent√≤ utent• <utent√≤@domini•>
 
manco puoi rispondergli.


 scriverti dal web? Con questo From:
 
I domini nuovi non sono utf8. Sono i browser (e i client e i server in 
generale) che fanno la conversione da utf8 a ascii.
 
Per esempio, caffè.it diventa 
xn--caff-8oa.it
 
 
Quello che è stato standardizzato è appunto la parte xn-- che introduce 
un nome "da convertire", e il formato della conversione da unicode a 
ascii.
 
Bye.

 ascii.
 
Interessante, grazie per i chiarimenti. 
