|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
|
[PHP] Mail inviata da codice php non visualizzata correttamente
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
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB) Ultima modifica di Fabiorayden : 19-09-2007 alle 11:50. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
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.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
|
Quote:
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à.
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB) |
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
|
Problema quasi risolto... appunto... quasi
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.
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB) |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
|
Problema risolto
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.
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:59.