PHPMailer $ mail-> addAttachment attatchment在某些时候丢失了

时间:2017-11-30 08:11:01

标签: php email phpmailer

我正在使用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个图像 请帮助我在哪里做错了,为什么有时会错过附件呢?

1 个答案:

答案 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想要附上。