php – 发送电子邮件时避免超出500行限制错误

我在Joomla中使用PHPMailer library integrated in Joomla作为电子邮件组件.它确实工作得很好,但是我遇到了使用1and1邮件服务器运行脚本的用户的问题.他们可能会遇到这样的错误:

2012-06-14 18:20:34 u65913791 1x1et0-1RocCH2xzU-00qzkq EE transaction error after sending of mail text: msmtp.kundenserver.de[172.19.35.7] 500 Line limit exceeded

来自不同用户的另一个例子:

SMTP error from remote mail server after end of data:
host mx00.1and1.co.uk [212.227.15.134]: 500 Line limit exceeded

行限制不是关于多少行,而是在一行中实际使用了多少字符,1和1限制为10240个字符(支持答案) – 实际上是RFC 2822中所需的10倍.

我认为问题是由于在提交电子邮件时使用“错误”的行分隔符导致整个电子邮件作为单行到达电子邮件服务器.我想我需要确保在我的脚本中插入换行符,因为PHPMailer失败了.

目前我只是从WYSIWYG编辑器接收HTML内容并放入PHPMailer对象:

// snip, $mail2send is the JMail instance, which inherits PHPMailer
$mail2send->setSubject($mail->subject);
$mail2send->IsHTML(true);
$mail2send->setBody($mail->body);   
// snip

如何插入适当的换行符?

最佳答案
使用chunk_split.此功能专为像您这样的任务而设计,甚至默认(分为76个字符)也是如此.

所以你的代码将是

$mail2send->setSubject($mail->subject);
$mail2send->IsHTML(true);
$mail2send->setBody(chunk_split($mail->body));  

转载注明原文:php – 发送电子邮件时避免超出500行限制错误 - 代码日志