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

标签 php email phpmailer

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

相关文章:

php - 从 Kohana 3 中的数据库查询中获取随机行

php - 在 Codeigniter 上显示 UTF8 字符

java - 未收到通过 ovh 地址使用 spring mail 发送的电子邮件

php - 使用 PHPMailer 为 Gmail API 格式化 MIME 消息时如何发送到 BCC 地址?

php - 如何通过邮件发送从数据库中获取的数据

php - Symfony 2 - 上传文件,移动方法失败 - 无法创建目录...

php - 使用连接比较sql查询中的两个表

javascript - 单击链接打开电子邮件桌面客户端

android - 将附件添加到电子邮件

php - 使用 smtp 和 dkim 通过 postfix 使用 phpmailer 发送邮件