繁体   English   中英

使用AddEmbeddedImage时发生内存泄漏

[英]Memory leak when using AddEmbeddedImage

每当我在PHPMailer使用AddEmbeddedImage时,都会出现此错误:

致命错误:659行上的C:\\ xampp \\ htdocs \\ project \\ phpmailer \\ class.smtp.php中的134217728字节已用尽内存大小(尝试分配4096字节)

这是659行

$lines = explode("\n", str_replace(array("\r\n", "\r"), "\n", $msg_data));

这是代码的一部分:

$mail->Body = '
    <html>
        <head>
            <title>Sign-Up Verification</title>
        </head>
        <body style="text-align:center;">
            <img src="cid:letterhead">
        </body>
    </html>
';
$mail->AddEmbeddedImage('img/letterhead.jpg', 'letterhead', 'letterhead.jpg');

相对路径是正确的,所以我认为这不是问题。 我已经尝试过使用绝对路径:

<img src="C:\xampp\htdocs\project\img\letterhead.jpg"/>

尽管错误消失了,但邮件中没有显示图像。

有关该错误的线程说,增加内存限制应将其删除,但是为了安全起见,我试图避免编辑php.ini 我还查看了有关使用AddEmbeddedImage()线程,但是没有一个问题说明该错误,并且语法正确。

我真的应该增加内存限制吗? 还是本地主机问题?

更新

尝试使用较小的图像(大小为1.5mb原始图像为26.7mb) ,我现在遇到的错误是

致命错误:第999行的C:\\ xampp \\ htdocs \\ amac2017 \\ phpmailer \\ class.smtp.php中超过30秒的最大执行时间

999行

$result = fwrite($this->smtp_conn, $data);

PHPMailer::AddEmbeddedImage()很流行用于在电子邮件中添加图像,因此不太可能导致内存泄漏。 可以根据需要调整PHP的配置文件。 也许您可以缩小图片范围并适当地调整php.ini。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM