我正在使用PHPMailer发送附件的电子邮件。通常文件是具有jpg png jpeg格式的图像。有时图像会附加到电子邮件中,但有时会丢失 我使用的代码如下。
for($i=0; $i < $count_rows; $i++){
$root_dr = $_SERVER['DOCUMENT_ROOT'];
$img_url_dr = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
$passport_attachment = str_replace($img_url_dr, $root_dr, $all_images[$i]);
$mail->addAttachment($passport_attachment, $all_data['firstname'][$i]);
}
它与附件有关,但有时附件失败我很困惑,问题出在哪里 循环中的图像可以是循环中的1到5个图像 请帮助我在哪里做错了,为什么有时会错过附件呢?
答案 0 :(得分:0)
你没有检查addAttachment
的返回值,你的循环效率有点低。这样做:
$root_dr = $_SERVER['DOCUMENT_ROOT'];
$img_url_dr = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
for($i=0; $i < $count_rows; $i++){
$passport_attachment = str_replace($img_url_dr, $root_dr, $all_images[$i]);
if !($mail->addAttachment($passport_attachment, $all_data['firstname'][$i])) {
echo "File $passport_attachment failed to attach\n";
}
}
很难从你的代码中判断出你是否正在这样做(我现在不在$all_images
中),但是addAttachment
确实需要本地路径,而不是文件的URL想要附上。