感叹号使用phpmailer出现在电子邮件正文中

时间:2012-10-11 13:04:09

标签: 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 of user(recipient)
$content = 'some html code here';

$mail->MsgHTML($content); //this is body of email
$mail->Send();

这很好用。但无法找到为什么有时感叹。 提前谢谢......

4 个答案:

答案 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));