2017-11-30 5 views
0

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

반환 값을 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에의를하지 않는) 사용자 코드에서 말하는 힘들지만, 로컬 경로, 당신이 원하는 파일이 아닌 URL을 addAttachment 기대 하시는가 첨부.