Как прикрепить несколько изображений?

У меня есть скрипт, который изменяет размер до 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>';
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
52
1

Ответы 1

Вы должны повторить эту строку для каждого файла

$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."--";
}

Большое спасибо, это выглядит великолепно, но, к сожалению, электронное письмо загружается примерно в правильном размере, но вложений нет вообще?

Helen Lee 22.01.2019 10:27

Можете попробовать некоторые предложения здесь stackoverflow.com/questions/22245082/…

Vinay 22.01.2019 17:05

Другие вопросы по теме