我使用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();
这很好用。但无法找到为什么有时感叹。 提前谢谢......
答案 0 :(得分:9)
我认为这是因为电子邮件消息在一行中不能超过998个字符。
尝试添加,
$mail->WordWrap = 50;
答案 1 :(得分:3)
我知道这已经晚了但是有一个替代解决方案对我有用:
使用此行使用base64编码整个邮件:
$message = chunk_split(base64_encode($message));
然后,将此标题附加到您的标题:
$headers .= "Content-Transfer-Encoding: base64\r\n\r\n";
这将告诉邮件客户端您的邮件是base64编码的。
答案 2 :(得分:2)
如果您使用的是PHPmailer,那么只有一行代码可以提供帮助:
$mail = new PHPMailer();
$mail->Encoding = 'base64';
这将在内部执行Content-Transfer-Encoding:base64和chunk_split(base64_encode($ message))。
答案 3 :(得分:0)
我也遇到了这个问题,经过长时间的搜索,我发现你应该自己打包HTML
$emailContent = '<p>some large html</p>';
$mail->msgHTML(wordwrap($emailContent, 50));