zip-вложение повреждается sendmail

Хотя perl , вероятно, будет быстрее, чем перебор большого каталога "x" раз, вот простое решение методом грубой силы.

Внешний цикл определяет, сколько файлов будет перемещено --3 в этом примере. Внутри этого цикла мы инициализируем «самый старый» файл первым именем файла, полученным в результате подстановки *. Затем внутренний цикл сравнивает временную метку каждого файла, чтобы определить, старше ли он, чем(-ot)текущий -самый старый файл. Если это так, мы обновляем «самое старое» имя файла. В конце внутреннего цикла мы сообщаем и перемещаем этот файл.

for((count=0; count < 3; count++))
do
  set -- *
  oldest=$1
  for f in./*
  do
    if [ "$f" -ot "$oldest" ]
    then
      oldest=$f
    fi
  done
  echo mv -- "$oldest"./.archive
  mv -- "$oldest"./.archive
done

0
08.04.2021, 13:18
1 ответ

ZIP-файл является двоичным, а csv-файл — нет. Электронная почта не предназначена для двоичных файлов.

Добавьте заголовок Content-Transfer-Encoding: base64и закодируйте zip-файл в base64. Поэтому измените строки для вложения на

echo "--GvXjxJ+pjyke8COw"
echo "Content-Disposition: attachment; filename=$FILENAME"
echo "Content-Transfer-Encoding: base64"
echo ""
base64 $FILENAME

Существует также определенная двоичная кодировка передачи, но она является необязательной и не все почтовые серверы ее поддерживают.

1
28.04.2021, 22:53

Теги

Похожие вопросы