感叹号将使用phpmailer显示在电子邮件正文中

感叹号将使用phpmailer显示在电子邮件正文中,php,phpmailer,Php,Phpmailer,我正在使用phpmailer在我的网站上发送电子邮件。我的代码运行良好,但有时在电子邮件正文中随机包含感叹号。我的代码如下: $mail->SetFrom(FROM_EMAIL,FROM_NAME); //emailid of sender(admin) $mail->Subject = 'Subject here.'; //subject of email $mail->AddAddress(Address here); //emailid o

我正在使用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编码的。

我也遇到了这个问题,在长时间搜索后,我发现您应该对HTML进行文字包装

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

'; $mail->msgHTML(wordwrap($emailContent,50));
如果您使用的是PHPmailer,则只有一行代码有帮助:

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

这将在内部执行内容传输编码:base64和chunk_分割(base64_encode($message))。

感叹号
或问号
??通常,如果查看HTML邮件的客户端误解了字符集(因为您的邮件对其进行了误传),则无效字符将显示为
。可能需要
$mail->CharSet='UTF-8'查看此内容,希望能有所帮助。或者尝试添加
$content=wordwrap($content,50)
after
$content='some html code here'
您能解释一下为什么会出现这种情况,或者解释一下为什么它不能处理超过998个字符吗?@StefanDunn 998个字符的限制是由于在许多发送、接收或存储互联网消息格式消息的实现中存在限制,这些消息在一行中不能处理超过998个字符。有关更多详细信息,TinyFrog软件链接已失效。这是一个实时存档版本-