【发布时间】:2023-03-15 16:19:01
【问题描述】:
我已经使用 PHPMailer 10 年了,没有任何问题。 但是,现在我的服务器需要禁用 PHP 中的“fopen”,这会影响 PHPMailer 中的“file_get_contents”。 我尝试使用 CURL 而不是“file_get_contents”。 一切正常,发送文本,但无法发送附件。 这是我使用的 CURL,而不是“file_get_contents”:
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
我使用 PHPMailer 6.1.6。 问题出在 PHPMailer.php 中,函数 encodeFile @ line 3143
$file_buffer = file_get_contents($path);
如何发送没有“file_get_contents”的文件; 请帮帮我,我尝试解决这个问题一个月。
提前谢谢你。 呐。
发送消息时出现以下错误:
30352#0: *9113244 FastCGI 在标准错误中发送:“PHP 消息:PHP 致命错误:未捕获的 PHPMailer\PHPMailer\Exception:文件错误:无法打开文件:/var/www/vhosts/ 中的 temp/attachFile.jpg kjubzz.com/php7v5.kjubzz.com/lib/PHPMailer/src/PHPMailer.php:3147 堆栈跟踪:
#0 /var/www/vhosts/kjubzz.com/php7v5.kjubzz.com/lib/PHPMailer/src/PHPMailer.php(3115): PHPMailer\PHPMailer\PHPMailer->encodeFile()
#1 /var/www/vhosts/kjubzz.com/php7v5.kjubzz.com/lib/PHPMailer/src/PHPMailer.php(2624): PHPMailer\PHPMailer\PHPMailer->attachAll()
#2 /var/www/vhosts/kjubzz.com/php7v5.kjubzz.com/lib/PHPMailer/src/PHPMailer.php(1532): PHPMailer\PHPMailer\PHPMailer->createBody()
#3 /var/www/vhosts/kjubzz.com/php7v5.kjubzz.com/lib/PHPMailer/src/PHPMailer.php(1430): PHPMailer\PHPMailer\PHPMailer->preSend()
#4 /var/www/vhosts/kjubzz.com/php7v5.kjubzz.com/contact3.php(157): PHPMailer\PHPMailer\PHPMailer->send()
#5 {主} 在阅读上游时在第 3147 行抛出 /var/www/vhosts/kjubzz.com/php7v5.kjubzz.com/lib/PHPMailer/src/PHPMailer.php"
【问题讨论】:
-
您能否告诉我们您是否收到此代码的错误?