Postfix :Может ли он объединять вложения из двух электронных писем, удалять исходные электронные письма и повторно отправлять их как одно?

Вот один из способов (с использованием инструментов GNU):

grep -Po '^\s*\K/.*' file | 
    sed 's/\s*\\//'  | 
        while IFS= read -r path; do 
            [[ -e "$path" ]] && 
                printf 'FOUND: "%s"\n' "$path" || 
                printf "ERROR: '%s' doesn't exist\n" "$path"; 
        done 

Пояснение

  • grep -Po '^\s*\K/.*':найти только те строки, которые начинаются с 0 или более пробельных символов, а затем /. Это напечатает строки с целевыми путями.
  • sed 's/\s*\\//':удалите все пробелы в конце и обратную косую черту.
  • while IFS= read -r path; do:прочитать каждую строку (путь )в переменную $path.
  • [[ -e "$path" ]] && printf 'FOUND: "%s"\n' "$path":если этот путь существует, вывести соответствующее сообщение.
  • || printf "ERROR: '%s' doesn't exist\n" "$path";:иначе, если он не существует, вывести сообщение об ошибке.
0
10.05.2021, 23:46
1 ответ

Это возможно, но это сложно .

Начнем с «двух писем». Есть два электронных письма. Каково временное расстояние, в течение которого два электронных письма больше не могут быть объединены вместе? Вам нужно хранить первое электронное письмо как минимум в течение этого времени. И, если в течение этого времени приходит другая почта, вы выполняете слияние; в противном случае вы освобождаете первую почту, которая придет с задержкой.

Итак, вам нужно перехватывать все электронные письма по мере их поступления , проверять, адресованы ли они одному отправителю и присутствует ли этот отправитель в списке «объединителей».

Если эти условия выполнены, электронное письмо удаляется из очереди отправки или, если возможно, вообще не ставится в очередь, а сохраняется локально (в mbox, например, закодировано для отправителя. Это может быть каталог с отправителем MD5 в качестве имени ).

Затем необходимо периодически проверять все такие mbox'ы. Вы должны сделать это через скрипт cron, другого практичного и надежного способа нет. Мбоксы старше определенного времени должны быть преобразованы обратно в электронные письма и отправлены без дальнейших задержек.

Если при сохранении сообщения электронной почты соответствующий mbox уже присутствует, вы извлекаете вложения из входящего сообщения электронной почты и добавляете его в существующий mbox.

0
28.07.2021, 11:33

Теги

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