每当我在AddEmbeddedImage
中使用PHPMailer
时,都会收到此错误:
致命错误:第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);
答案 0 :(得分:2)
PHPMailer::AddEmbeddedImage()
用于在电子邮件中添加图像很受欢迎,因此不太可能导致内存泄漏。允许根据需要调整PHP的配置文件。也许你可以缩小你的图片并适当调整php.ini。