我正在将Joomla 中集成的 PHPMailer 库用于 Joomla中的电子邮件组件。它确实工作得很好,但是我遇到了用户使用 1and1 邮件服务器运行脚本的问题。他们可能会遇到这样的错误:
2012-06-14 18:20:34 u65913791 1x1et0-1RocCH2xzU-00qzkq EE 发送邮件文本后交易错误:msmtp.kundenserver.de[172.19.35.7] 500 超出线路限制
另一个用户的另一个例子:
数据结束后来自远程邮件服务器的 SMTP 错误:主机 mx00.1and1.co.uk [212.227.15.134]:超过 500 行限制
行限制不是关于多少行,而是在一行中实际使用了多少个字符,1and1 限制为 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
如何插入适当的换行符?