7

我正在使用 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

4 回答 4

9

我认为这是因为电子邮件的一行不能超过 998 个字符。

尝试添加,

$mail->WordWrap = 50;
于 2012-10-11T13:11:08.547 回答
4

我知道这已经很晚了,但是有一个替代解决方案对我有用:

使用此行使用 base64 对整个消息进行编码:

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

然后,将此附加到您的标题:

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

这将告诉邮件客户端您的邮件是 base64 编码的。

于 2013-02-07T22:56:05.590 回答
2

如果您使用的是 PHPmailer,那么只有一行代码会有所帮助:

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

这将在内部执行 Content-Transfer-Encoding: base64 和 chunk_split(base64_encode($message)) 。

于 2017-03-14T04:45:04.193 回答
0

我也有这个问题,经过长时间的搜索,我发现你应该把你的 HTML 换行

$emailContent = '<p>some large html</p>';
$mail->msgHTML(wordwrap($emailContent, 50));
于 2014-05-07T19:48:16.877 回答