Почему postfix-spamassassin-dovecot настроен таким образом?

Напишите сценарий оболочки, который получает файлы в качестве параметров:

#!/bin/bash

for filepath; do
  parentpath="${filepath%/*}"
  if [ "$parentpath" != "$filepath" ]; then # $file contains a /
    file="${filepath#"$parentpath"/}"
  else
    file="$filepath"
    parentpath=""
  fi
  filename="${file%.*}"
  if [ -z "$parentpath" ]; then
    mkdir -p "$filename" && mv "$file" "$filename"
  else
    mkdir -p "${parentpath}/$filename" &&
      mv "$filepath" "${parentpath}/$filename"
  fi
done

Вы можете вызвать этот сценарий как ./script *.ext1 *.ext2 *.ext3 для не слишком большого количества файлов или как find ... -exec ./script {} + для огромного количества.

0
27.03.2018, 20:02
2 ответа

Когда товарный знак пользуется большим успехом, он может стать общим названием того, чем он наиболее известен. Что-то очень похожее произошло с командой /usr/sbin/sendmailв системах Linux и Unix.

Когда Postfix установлен, /usr/sbin/sendmailна самом деле не является Sendmail -, это просто компонент Postfix, предоставляющий тот же интерфейс (, то есть те же опции и соглашения о конвейерной цепочке ), что и Sendmail.

Postfix был разработан как замена Sendmail. Оказывается, многие программы будут взаимодействовать с почтовой подсистемой, вызывая /usr/sbin/sendmailс хорошо -известными опциями и передавая ей всякие штуки. Поэтому Postfix должен поддерживать и это.

При использовании Spamassassin сообщение должно быть передано на spamcдля обнаружения спама. Так как он собирается добавить к сообщению хотя бы несколько заголовков, указывающих на то, что проверка на спам была выполнена и ее результаты (и, если сообщение является спамом, уведомление в начале содержимого сообщения ), spamcдолжен затем передать сообщение обратно в Postfix для окончательной доставки.

Обратите внимание, что Postfix считает «канал» транспортным методом , или, другими словами, если сообщение отправлено на spamc, Postfix считает свою работу выполненной в этот момент. Таким образом, сообщение, проверенное на спам -, должно быть повторно -введено обратно в процесс обработки Postfix -, и это то, что делает команда sendmail.

Ключевое слово content_filterделает меньше, чем можно было бы ожидать -оно просто указывает Postfix передать сообщение, пришедшее с помощью smtpd, определенному транспортному методу. Он не ожидает возврата какого-либо содержимого автоматически.:Если метод транспортировки фильтра содержимого _проглатывает сообщение без вывода, работа Postfix выполнена. Если что-то осталось после того, как сообщение прошло через фильтр, задача фильтра состоит в том, чтобы снова вернуть его к обработке.

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

Если вы уверены, что этот Postfix будет обрабатывать только входящую почту, вы, вероятно, могли бы настроить spamcдля передачи сообщения непосредственно в Dovecot.

0
28.01.2020, 04:27

sendmail не задействован. Это просто исполняемый файл с постфиксом, и он называется так по историческим причинам и для совместимости.

посмотрите справочную страницу:

SENDMAIL(1)                                       General Commands Manual 

NAME
       sendmail - Postfix to Sendmail compatibility interface

SYNOPSIS
       sendmail [option...] [recipient...]
[...]

РЕДАКТИРОВАТЬ:(добавлено после вашего комментария)

Вы можете изменить его с помощью LDA dovecot, но, конечно, это будет работать только для местной доставки. Вы также можете проверять на спам исходящие электронные письма, и они не будут работать с dovecot. Полный отказ от ответственности :Я не проверял всю вашу конфигурацию:)

0
28.01.2020, 04:27

Теги

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