我正在使用 PHPMailer library integrated in Joomla用于 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
行限制不是关于多少行,而是关于在单行中实际使用了多少字符,其中 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
如何插入适当的换行符?
最佳答案
使用chunk_split .这个函数是为像你这样的任务而设计的,甚至它的默认值(拆分为 76 个字符)也是如此。
所以你的代码将是
$mail2send->setSubject($mail->subject);
$mail2send->IsHTML(true);
$mail2send->setBody(chunk_split($mail->body));
关于php - 发送电子邮件时避免超过 500 行限制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11700189/