il punto esclamativo viene visualizzato nel corpo del messaggio di posta elettronica utilizzando phpmailer

Sto usando phpmailer per l'invio di e-mail nel mio sito web. Il mio codice funziona bene, ma a volte nel corpo del messaggio di posta elettronica contiene un punto esclamativo in luoghi casuali. Il mio codice è il seguente:

$mail->SetFrom(FROM_EMAIL,FROM_NAME); //emailid of sender(admin) $mail->Subject = 'Subject here.'; //subject of email $mail->AddAddress(Address here); //emailid of user(recipient) $content = 'some html code here'; $mail->MsgHTML($content); //this is body of email $mail->Send(); 

Funziona bene Ma non riesco a trovare il motivo per cui l'esclamazione viene a volte. Grazie in anticipo…

Penso che sia perché i messaggi di posta elettronica non possono avere più di 998 caratteri su una row.

Prova ad aggiungere,

 $mail->WordWrap = 50; 

So che è tardi ma c'è una soluzione alternativa che ha funzionato per me:

Usa questa linea per codificare l'integer messaggio usando base64:

 $message = chunk_split(base64_encode($message)); 

Quindi aggiungi questa intestazione:

 $headers .= "Content-Transfer-Encoding: base64\r\n\r\n"; 

Questo dirà al client di posta che il tuo messaggio è codificato in base64.

se usi PHPmailer, solo una row di codice dovrebbe aiutare:

 $mail = new PHPMailer(); $mail->Encoding = 'base64'; 

questo farà Content-Transfer-Encoding: base64 e chunk_split (base64_encode ($ message)) internamente.

Ho avuto anche questo problema, dopo una lunga ricerca ho scoperto che dovresti scrivere a capo il tuo HTML

 $emailContent = '<p>some large html</p>'; $mail->msgHTML(wordwrap($emailContent, 50));