LINUX.ORG.RU
решено ФорумAdmin

procmail - cортировка писем с вложением

 ,


0

2

Доброе...

Настроил procamil

# .procmailrc - конфиг для procmail
        # Переменные
        #
        PATH=/bin:/usr/bin
        MAILDIR=/home/user/Mail                    # каталог с почтой
        LOGFILE=/home/user/Mail/procmail.log       # лог для записи всех операций
        DEFAULT=/home/user/Mail/mbox               # файл для не отсортированных сообщений
        SHELL=/bin/bash
        METAMAIL_TMPDIR=$MAILDIR/attachments
        LOGABSTRACT=no
        VERBOSE=off
        # Правила сортировки почты
        #
        # Пример: сортировка почты, приходящей на e-mail user_name@host.ru
        SUBJ='Subject: Log'
        
        :0
        * ^SUBJ
        logs

Письма с темой лог собираются в одном файле, но часто приходят письма с вложениями, картинки и иногда текстовые файлы и документы.

Подскажите - как:

1 - Вложенные файлы получить именно файлами, а не бинарно (или как правильно сказать?);

2 - Письмо помешать в отдельную папку, в которой само письма - тема, тело и влоения;

3 - Что бы письма сортировалились по папкам. Например пришло присьмо Сурвер1Лог - Создалась папка Сервер1Лог, и в ней создалась папка с именем этого письма и вожениями этого письма.

Смотрел много, но пока не удачно все ... Не могу до конца понять принцип фильтра)

Спасибо.

:0
| /path/to/script/mymailproc.sh

Там обрабатывай письмо как хочешь

anonymous ()
Ответ на: комментарий от anonymous

Это понятно ... а как мне документы и картинки из тела письма выкинуть в файлы отдльные?

firefedot ()
Ответ на: комментарий от firefedot

В скрипте разобрать письмо на части и положить их в нужную директорию.

Или вопрос чем разбирать на части письмо?

anonymous ()
Ответ на: комментарий от firefedot

munpack

Description-en: tools for encoding/decoding MIME messages
 Mpack and munpack are utilities for encoding and decoding
 (respectively) binary files in MIME (Multipurpose Internet
 Mail Extensions) format mail messages. For compatibility
 with older forms of transferring binary files, the munpack
 program can also decode messages in split-uuencoded format.
anonymous ()
Ответ на: комментарий от anonymous

Вопрос - как мне из письма выдернуть сам документ. вот например.

В файле logs все письма с темой нужной и там же в файле картинки вида e45fert43gdifti93ijr##@# и прочего) выдернуть по началу иконцу могу, но даже если меняю разширен ия файла- оно картинкой не становится)

А сам файл grep'ом пройтись то могу, а файлы выдернуть нет)

firefedot ()

Решено

В общем решил скриптом, кастыль - но работает...

#!/bin/bash

DIR='${HOME}/Mail'
LOG=$DIR/getmail.log
date +%r-%-d/%-m/%-y >> $LOG

#EXTRACT=$DIR/process/extract/"$TEMA"/"$TEMA"" - (""$DATA"")"
fetchmail

mv $DIR/new/* $DIR/process/landing/
cd $DIR/process/landing/
shopt -s nullglob

for i in *
    do
    echo "processing $i">>$LOG
    #EXTRACT=$DIR/process/extract/"$TEMA"/"$TEMA"" - (""$DATA"")"
    if grep -q -a "Subject: Log" $i
    then
        TEMA=`grep -a "Subject: " $i | cut -c 10-`
        DATA=`grep -a +0300 $i | grep -v for | cut -c 8- | rev | cut -c 7- | rev `
        EXTRACT=$DIR/process/extract/"$TEMA"/"$TEMA"" - (""$DATA"")"
        echo "TEMA = "$TEMA
        echo "DATA = "$DATA
        echo "EXTRACT = "$EXTRACT
        mkdir -p $DIR/process/extract/"$TEMA"/"$TEMA"" - (""$DATA"")"
        cp $i "$EXTRACT"
        STR=`grep "<HTML>" "$EXTRACT"/"$i" -n | cut -d ":" -f 1`
        TOTALSTR=`grep "" "$EXTRACT"/"$i" -c`
        #let "NEEDSTR=$TOTALSTR - $STR"
        echo "STR = "$STR"; TOTALSTR = "$TOTALSTR
        echo "saving backup "$TEMA" to archive" >> $LOG
        mv $i $DIR/process/archive/"$TEMA"" - (""$DATA"")"
        echo "unpacking $i" >> $LOG
        munpack -C "$EXTRACT" -q "$EXTRACT"/"$i"
    else
        echo "Письмо не содержит темы"
    fi

done
shopt -u nullglob
echo "finishing...">>$LOG
mv $DIR/process/extract/* $DIR/process/store
echo "done" >>$LOG

firefedot ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.