View Full Version : [PHP] Mail inviata da codice php non visualizzata correttamente
Fabiorayden
19-09-2007, 11:37
Con php compongo una mail con i vari campi "from", "to" etc.
Il "Content-Type" l'ho impostato come "text/html charset=utf-8".
Se la codifica di lettura di Outlook è impostata (per esempio) su "Europa Occidentale" o qualche altro standard ISO, quella è e quella rimane, per cui se nel testo della mail sono presenti degli accenti, questi verranno visualizzati male.
Invece con Outlook Express avviene il cambio di codifica.
Come si può risolvere il problema senza modificare le impostazioni del client di posta elettronica?
edit: per adesso l'unica cosa che mi viene in mente è usare htmlentities per codificare i caratteri speciali
Il "Content-Type" l'ho impostato come "text/html charset=utf-8".A parte che manca un ';' dopo html (ma magari hai solo dimenticato di scriverlo qui nel post), comunque se specifichi un certo charset, il messaggio deve chiaramente essere codificato con quel charset.
Fabiorayden
19-09-2007, 13:00
A parte che manca un ';' dopo html (ma magari hai solo dimenticato di scriverlo qui nel post), comunque se specifichi un certo charset, il messaggio deve chiaramente essere codificato con quel charset.
Il ";" l'ho dimenticato di scriverlo nel post.
Con Outlook riesco a legger il messaggio correttamente solo se cambio a mano la codifica, mentre, come dicevo già prima, Outlook Express questo problema non me lo dà.
Fabiorayden
19-09-2007, 17:23
Il problema di lettura delle mail su Outlook l'ho risolto.
Mi pare strano che le mail le ho incominciate a legger correttamente da quando ho passato alla funzione di invio delle mail oggetto e messaggio sotto forma di variabili (prima questi 2 li prelevavo direttamente dal form usando $_POST).
Il charset l'ho lasciato UTF-8.
Ora il problema è che andando a legger le mail dal sito del provvider non vengono ancora visualizzate correttamente (i soliti caratteri accentati...)
Da notare che di default Libero ha la codifica ISO occidentale, mentre Tiscali e Alice hanno la codica UTF-8, eppure in nessuno dei casi la mail viene visualizzata correttamente.
Cos'altro devo impostare nel codice php per far sì che anche da web si possa legger correttamente?
Ho già provato le funzioni htmlspecialchars e htmlentities senza ottener alcun risultato utile.
Fabiorayden
20-09-2007, 16:39
Ho risolto il problema codificando oggetto e corpo del messaggio con utf8_decode, che decodifica una stringa da utf-8 a ISO-8859-1 e di conseguenza ho modificato il charset impostato nel Content-Type della mail.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.