У меня есть скрипт, который изменяет размер до 5 загруженных изображений. Они записываются в массив, и я хотел бы прикрепить их все к электронному письму. У меня есть следующий скрипт, но он прикрепляет только 1 изображение, где мне нужно зациклить, чтобы прикрепить их все?
$path = "./uploads/";
foreach ($filenameresized as $filename) {
$file = $path.$filename;
}
$content = file_get_contents( $file);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$subject = "ENQUIRY - Evolve My Boiler (" . $name . " - " . $date . ")" ;
$from_name = "Evolve Maintenance Ltd";
//$from_mail = "[email protected], [email protected]";
$from_mail = "[email protected]";
$replyto = "";
$cc = "";
$bcc = "";
$mime_boundary = "==Multipart_Boundary_x".md5(mt_rand())."x"; // generate a random string to be used as the boundary marker
$file_count = count($filenameresized); //count total files attached
$boundary = md5("specialToken$4332"); // boundary token to be used
// header
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$replyto."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
// message body
$message = "<b>Hello</b>";
// message & attachment
$nmessage = "--".$uid."\r\n";
$nmessage .= "Content-Type: text/html;charset=utf-8\n";
$nmessage .= "Content-Transfer-Encoding: 7bit\n\n";
$nmessage .= $message."\r\n\r\n";
$nmessage .= "--".$uid."\r\n";
$nmessage .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n";
$nmessage .= "Content-Transfer-Encoding: base64\r\n";
$nmessage .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$nmessage .= $content."\r\n\r\n";
$nmessage .= "--".$uid."--";
if (mail($from_mail, $subject, $nmessage, $header)) {
return true; // Or do something here
} else {
echo 'Oops something went wrong - please <a href = "find-your-boiler.php">try again</a>';
}






Вы должны повторить эту строку для каждого файла
$nmessage .= "--".$uid."\r\n";
$nmessage .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n";
$nmessage .= "Content-Transfer-Encoding: base64\r\n";
$nmessage .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
Так что удалите эти строки сверху
$path = "./uploads/";
foreach ($filenameresized as $filename) {
$file = $path.$filename;
}
$content = file_get_contents( $file);
$content = chunk_split(base64_encode($content));
И ваш блок // сообщение и вложение становится
// message & attachment
$nmessage = "--".$uid."\r\n";
$nmessage .= "Content-Type: text/html;charset=utf-8\n";
$nmessage .= "Content-Transfer-Encoding: 7bit\n\n";
$nmessage .= $message."\r\n\r\n";
$path = "./uploads/";
foreach ($filenameresized as $filename) {
$nmessage .= "--".$uid."\r\n";
$file = $path.$filename;
$content = file_get_contents( $file);
$content = chunk_split(base64_encode($content));
$nmessage .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n";
$nmessage .= "Content-Transfer-Encoding: base64\r\n";
$nmessage .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$nmessage .= $content."\r\n\r\n";
$nmessage .= "--".$uid."--";
}
Можете попробовать некоторые предложения здесь stackoverflow.com/questions/22245082/…
Большое спасибо, это выглядит великолепно, но, к сожалению, электронное письмо загружается примерно в правильном размере, но вложений нет вообще?