let RandomArray = Array(N).fill(0).map((x,i) => i + 1).sort(() => Math.random() - 0.5).slice(0, x);
<?php
require 'vendor\eoghanobrien\php-simple-mail\class.simple_mail.php';
$start = microtime(true);
echo 'Старт'.PHP_EOL;
$files = array_filter(scandir('Foto'), function($item) {
return !is_dir('Foto/'.$item);
});
echo 'Файлы считаны за '.(microtime(true)-$start).' секунд'.PHP_EOL;
$mail = new SimpleMail();
for($i=2; $i<count($files)+2; $i+=2){
if($i<count($files)+1){
$start = microtime(true);
$send = SimpleMail::make()
->setTo('to@mail.ru', 'NameTo')
->setFrom('login@mail.ru', 'NameFrom')
->setSubject('Fotos')
->setMessage('Вам было отправлено 2 фотографии: '.$files[$i].', '.$files[$i+1])
->setHtml()
->setWrap(100)
->addAttachment('Foto/'.$files[$i])
->addAttachment('Foto/'.$files[$i+1])
->send();
echo ($send) ? 'Письмо отправлено за '.(microtime(true)-$start).' секунд'.PHP_EOL : 'Ошибка'.PHP_EOL;
}
else{
$start = microtime(true);
$send = SimpleMail::make()
->setTo('btd1234@mail.ru', 'Timofey')
->setFrom('btd1234@mail.ru', 'Timofey')
->setSubject('Fotos')
->setMessage('Вам была отправлена 1 фотография: '.$files[$i])
->setHtml()
->setWrap(100)
->addAttachment('Foto/'.$files[$i])
->send();
echo ($send) ? 'Письмо отправлено за '.(microtime(true)-$start).' секунд'.PHP_EOL : 'Ошибка'.PHP_EOL;
}
}
<?php
$start = microtime(true);
echo 'Старт'.PHP_EOL;
$files = array_filter(scandir('Foto'), function($item) {
return !is_dir(Foto/' . $item);
});
$time = microtime(true)-$start;
echo 'Файлы считаны за '.$time.' секунд'.PHP_EOL;
for($i=2; $i<count($files)+2; $i+=2){
echo 'Начало генерации сообщения'.PHP_EOL;
$start = microtime(true);
$filename = "text.txt"; //Имя файла для прикрепления
$to = "to@mail.ru"; //Кому
$from = "login@mail.ru"; //От кого
$subject = "Fotos"; //Тема
if($i<count($files)+1){
$message = $files[$i].', '.$files[$i+1]; //Текст письма
}
else{
$message = $files[$i];
}
$boundary = "---"; //Разделитель
/* Заголовки */
$headers = "From: $from\nReply-To: $from\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
$body = "--$boundary\n";
/* Присоединяем текстовое сообщение */
$body .= "Content-type: text/html; charset='utf-8'\n";
$body .= "Content-Transfer-Encoding: quoted-printablenn";
$body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n";
$body .= $message."\n";
$body .= "--$boundary\n";
$filename = 'Foto/'.$files[$i];
$file = fopen($filename, "r"); //Открываем файл
$text = fread($file, filesize($filename)); //Считываем весь файл
fclose($file); //Закрываем файл
/* Добавляем тип содержимого, кодируем текст файла и добавляем в тело письма */
$body .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode($filename)."?=\n";
$body .= "Content-Transfer-Encoding: base64\n";
$body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n";
$body .= chunk_split(base64_encode($text))."\n";
if($i<count($files)+1){
$body .= "--$boundary\n";
$filename = 'Foto/'.$files[$i+1];
$file = fopen($filename, "r"); //Открываем файл
$text = fread($file, filesize($filename)); //Считываем весь файл
fclose($file); //Закрываем файл
/* Добавляем тип содержимого, кодируем текст файла и добавляем в тело письма */
$body .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode($filename)."?=\n";
$body .= "Content-Transfer-Encoding: base64\n";
$body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n";
$body .= chunk_split(base64_encode($text))."\n";
}
$body .= "--".$boundary ."--\n";
$time = microtime(true)-$start;
echo 'Сообщение сгенерировано за '.$time.' секунд'.PHP_EOL;
$start = microtime(true);
mail($to, $subject, $body, $headers); //Отправляем письмо
$time = microtime(true)-$start;
echo 'Сообщение отправлено за '.$time.' секунд'.PHP_EOL;
$start = microtime(true);
}
?>