marca de exclamação aparece no corpo da mensagem de e-mail usando phpmailer

Estou usando o phpmailer para enviar e-mails no meu site. Meu código funciona bem, mas às vezes no corpo de mensagens de e-mail contém ponto de exclamação em lugares randoms. Meu código é o seguinte:

$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(); 

Isso funciona bem. Mas não consigo descobrir por que a exclamação vem às vezes. Desde já, obrigado…

Eu acho que é porque as mensagens de e-mail não podem ter mais de 998 caracteres em uma linha.

Tente adicionar,

 $mail->WordWrap = 50; 

Eu sei que isso está atrasado, mas há uma solução alternativa que funcionou para mim:

Use esta linha para codificar toda a sua mensagem usando base64:

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

Então, adicione este seu header:

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

Isso indicará ao cliente de email que sua mensagem está codificada em base64.

Se você estiver usando o PHPmailer, apenas uma linha de código deve ajudar:

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

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

Eu também tive esse problema, depois de uma longa pesquisa, descobri que deveria escrever o seu HTML

 $emailContent = '

some large html

'; $mail->msgHTML(wordwrap($emailContent, 50));