PHP отправка нескольких файлов на почту. Неправильный цикл?
Вы в цикле меняете boundary, а он должен быть одинаковым между всеми частями. HTML-часть тоже должно быть только одна. Чтобы исправить, вот эту часть $boundary = "--" . md5(uniqid(time()));

            $headers = "MIME-Version: 1.0;\r\n";
            $headers .= "From: Robot\r\n";
            $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
                 
            $multipart = "--$boundary\r\n";
            $multipart .= "Content-Type: text/html; charset=UTF-8\r\n";
            $multipart .= "Content-Transfer-Encoding: base64\r\n";
            $multipart .= "\r\n";
            $multipart .= chunk_split(base64_encode($html));
надо поднять выше, оставить внутри else но вынести из цикла по файлам, т.к. она должна выполняться только один раз.
uniqid не совсем уникальный
такой код даст следующий выводfor ($i=0; $i<10; $i++) {
	echo uniqid(''), PHP_EOL;
}
результат56af220bd338b
56af220bd338b
56af220bd338b
56af220bd338b
56af220bd3773
56af220bd3773
56af220bd3773
56af220bd3773
56af220bd3773
56af220bd3773