PHP mail()电子邮件大小限制

时间:2013-06-14 07:35:40

标签: limit phpmailer email-attachments

我只是想问,当我使用PHPMailer从包含许多附件的表单发送信息时,除非文件总共超过7 MB,否则它会发送一切正常。

服务器上的Everyhing设置正确,如您所见:

memory_limit = 40M
post_max_size = 40M
upload_max_filesize = 40M
file_uploads = On

我已经阅读了有关PHP邮件服务器限制的内容。我已将PHPMailer设置为使用PHP mail()函数发送消息。

还需要设置什么?哪里可以问题?代码本身实际上没有任何限制,所以它必须在其他地方。

当没有发送邮件时,PHP似乎没有报告任何错误,我只是从

收到消息
if(!$mail->Send()) { } else

我已经读过,在某些电子邮件服务器上有7 MB的限制,这可能会被托管以某种方式限制吗?谢谢你的帮助,我很绝望。

我也试过我们的测试VPS服务器,它每次都发送邮件,当文件总共大于7 MB时,它只发送一些大小为< 7 MB。

3 个答案:

答案 0 :(得分:1)

我对大附件(例如pdf)所做的是对文件进行基本编码:

$file = "/home/path/to/file.pdf";
$fp = @fopen($file, "rb");
$pdf_data = @fread($fp, filesize($file));
@fclose($fp);
$pdf_data = chunk_split(base64_encode($pdf_data));
$mail->AddStringAttachment($pdf_data, "filename.pdf", "base64", "application/pdf");

发送大文件没有问题

答案 1 :(得分:1)

  

我已经读过,在某些电子邮件服务器上有7 MB的限制,可以   这会受到托管的限制吗?

很可能这是你的问题。 PHPMailer使用Web服务器的sendmail函数或安装的任何邮件服务器。通常,邮件大小有(默认)限制。对于Postfix,这将是:

message_size_limit(默认值:10240000)
消息的最大大小(以字节为单位),包括信封信息 http://www.postfix.org/postconf.5.html

您必须与托管服务提供商联系以进行更改。

答案 2 :(得分:0)

我在研究自己遇到的一个问题时发现了这篇文章,并且刚刚发现Gmail的字符数限制为10,000,所以如果您使用可能是您问题的Gmail地址进行测试...我现在使用$mail->MsgHTML(substr($body,0,9000).' [...]');来确保我保持在Gmail限制以下...