восклицательный знак появляется в теле сообщения электронной почты, используя phpmailer

Я использую phpmailer для отправки писем на моем сайте. Мой код работает нормально, но иногда в теле сообщения электронной почты содержится восклицательный знак в случайных местах. Мой код выглядит следующим образом:

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

Это прекрасно работает. Но не может найти, почему иногда приходит восклицание. Заранее спасибо…

Я думаю, это потому, что сообщения электронной почты не могут содержать более 998 символов в одной строке.

Попробуйте добавить,

 $mail->WordWrap = 50; 

Я знаю, что это поздно, но есть альтернативное решение, которое сработало для меня:

Используйте эту строку для кодирования всего сообщения с помощью base64:

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

Затем добавьте этот заголовок:

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

Это скажет почтовому клиенту, что ваше сообщение закодировано base64.

если вы используете PHPmailer, то только одна строка кода должна помочь:

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

это будет делать Content-Transfer-Encoding: base64 и chunk_split (base64_encode ($ message)) внутри.

У меня тоже была эта проблема, после долгих поисков я обнаружил, что вы должны сложить свой HTML-код

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