感叹号将使用phpmailer显示在电子邮件正文中
我正在使用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
$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软件链接已失效。这是一个实时存档版本-