[在PHP中以附件形式发送超过2mb的文件时,内存容量已用尽问题

问题描述 投票:1回答:1

我正在使用PHPMailer版本6. *和PHP7。当我附加一个大于2 mb的文件并尝试发送电子邮件时,它发出以下错误(在我将较低版本的PHPMailer与PHP5一起使用之前。在这种情况下工作正常。)

PHP致命错误:耗尽了20971520字节的允许内存大小(尝试分配18840168字节)在/var/www/html/email/classes/PHPMailer/PHPMailer.php,第3027行

我在php.ini中增加了内存限制和执行时间,但问题仍然相同。

phpmailer php-7
1个回答
0
投票

在PHPMailer中编码附件确实确实需要大量内存,主要是因为它在内存中保存了整个附件和一行一行的内容数组。理想情况下,可以将其转换为使用生成器(这将大大提高内存效率),但是必须等待下一个BC中断。

同时,进一步增加您的内存分配-将默认设置设置为64M或128M,而不是您提供的20M并不罕见。

© www.soinside.com 2019 - 2024. All rights reserved.