Buongiorno,
ho un problema con la mia pagina php che spedisce mail usando PhpMailer in quanto tutto quello che inserisco con lettere accentate quando viene spedito all' applicativo esterno ,che utilizza Internet Explorer essendo di vecchia data , viene scaricato con i caratteri non accentati; immagino sia un problema di codifica e per questo ho provato a fare un po' di prove che vi metto qui di seguito:
codice:
$today = date("F j, Y, g:i a");
require'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->Host = "####";
$mail->Username = "####";
$mail->Password = "####";
$mail->SMTPSecure = 'ssl';
$mail->Port = ####;
$mail->From = "####";
$mail->FromName = '';
$mail->charSet = "multipart/alternative";
$mail->AddAddress("####");
$mail->Subject = utf8_decode($oggetto);
$mail->Body = utf8_decode($messaggio);
qui di seguito il messaggio che va spedito ad un' applicazione esterna che ha bisogno di tag particolari:
codice:
$messaggio = '<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-15">'
. '<!--MF@[WEB]--><strong>ORDINE</strong> num. <!--MF$[NUM]-->' . $numero_ordine . '<!--MF&[NUM]--> del <!--MF$[DAT]-->' . $data . '<!--MF&[DAT]--><br/>'
. '<hr/><br/>'
. 'Azienda: <!--MF$[SOC]-->' . $UserSoc . '<!--MF&[SOC]--> ' . $strSocCts . '<br />'
. $strSdi
. $strInd . '<br/>'
. $strPiv . '<br/>'
. $strCRS . '<br/>'
. $strTel . '<br />'
. $strEma . '<br />'
. '<br />'
. 'Dati recapito:<br />'
. '<hr/>'
. $strRecSoc . '<br/>'
. $strRecInd . $strRecTel . $strRecEma
. '<br /><br />'
. $prodott
. '<hr/>'
. 'Subtotale materiale: ' . fix($total) . ' euro + Trasporto: ' . $trasporto . ' euro <br />'
. $ivatotale . $sconto . $pagamento
. 'Vettore: ' . $vettore . '<br />'
. '<hr>'
. $totaletotale
. $annotazioni
. 'Note : <br/><hr>'
. $UserNec . '<br/><br/>';
Come prove per gli encoding ho testato questi ma ho ottenuto solo caratteri senza accento o caratteri "strani".
codice:
$messaggio=" £ $ % & = ? ^ ° ç à è ì ò ù é";
$messaggio1=utf8_decode($messaggio);
$messaggio2=base64_decode($messaggio);
$messaggio3=html_entity_decode($messaggio);
$messaggio4=htmlspecialchars_decode($messaggio);
$messaggio5=mb_decode_mimeheader($messaggio);
$messaggio7=ucwords(filter_var($messaggio, FILTER_SANITIZE_STRING));
Come impostazioni di phpmailer ho tentato di modificare questo:
codice:
/**
* The character set of the message.
* @type string
*/
public $CharSet = 'UTF-8';
/**
* The MIME Content-type of the message.
* @type string
*/
public $ContentType = 'text/plain';
provando a mettere come charset=ISO-8859-1 o UTF8 ma senza risultati.
Non capisco proprio dove sbaglio.
Grazie in anticipo.