在 phpMailer v5 中附加的大小不能超过 8 MB
can't attach more than 8 mb in phpMailer v5
我正在使用 phpMailer v5。从今天开始,它工作正常,但今天我尝试附加两张邮件正文图片,每张图片大小为 4.1 MB。并返回 PHP 致命错误。
致命错误:第 616 行 /PHPMailer-master/class.smtp.php 中允许的 67108864 字节内存大小已用尽(已尝试分配 32 字节)
当我尝试使用较小的图像时它工作正常但是当图像总大小超过 8 mb 时它返回错误。
我检查了64M的内存限制
post_max_size48M
upload_max_filesize32M
这是我的代码
$SendMail = new PHPMailer();
$SendMail->setFrom('from@example.com', 'First Last');
$SendMail->addAddress('whoto@example.com', 'John Doe');
$SendMail->Subject = "Mail Subject";
$SendMail->Body = "This is the body of the message.";
$SendMail->addAttachment($pic1);
$SendMail->addAttachment($pic2);
if (!$SendMail->send()) {
echo "Mailer Error: " . $SendMail->ErrorInfo;
} else {
echo "Message sent!";
}
在其处理过程中的某一时刻,PHPMailer 将消息拆分为逐行数组。由于 PHP 的数组存储不是特别有效,因此这会带来相当大的开销(大约是数据大小的 3 倍)。这种方式的优点是速度很快,缺点是比较吃内存。解决方案是要么增加您的 PHP 内存分配,要么不发送如此大的附件 - 这通常是比 post a link 更好的解决方案;电子邮件确实不是大数据传输的好机制。
我正在使用 phpMailer v5。从今天开始,它工作正常,但今天我尝试附加两张邮件正文图片,每张图片大小为 4.1 MB。并返回 PHP 致命错误。
致命错误:第 616 行 /PHPMailer-master/class.smtp.php 中允许的 67108864 字节内存大小已用尽(已尝试分配 32 字节)
当我尝试使用较小的图像时它工作正常但是当图像总大小超过 8 mb 时它返回错误。
我检查了64M的内存限制 post_max_size48M upload_max_filesize32M
这是我的代码
$SendMail = new PHPMailer();
$SendMail->setFrom('from@example.com', 'First Last');
$SendMail->addAddress('whoto@example.com', 'John Doe');
$SendMail->Subject = "Mail Subject";
$SendMail->Body = "This is the body of the message.";
$SendMail->addAttachment($pic1);
$SendMail->addAttachment($pic2);
if (!$SendMail->send()) {
echo "Mailer Error: " . $SendMail->ErrorInfo;
} else {
echo "Message sent!";
}
在其处理过程中的某一时刻,PHPMailer 将消息拆分为逐行数组。由于 PHP 的数组存储不是特别有效,因此这会带来相当大的开销(大约是数据大小的 3 倍)。这种方式的优点是速度很快,缺点是比较吃内存。解决方案是要么增加您的 PHP 内存分配,要么不发送如此大的附件 - 这通常是比 post a link 更好的解决方案;电子邮件确实不是大数据传输的好机制。