Postfix - automatyczne odbieranie e-maili

Instalacja i konfiguracja oprogramowania sieciowego.
Yuber
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 22 gru 2007, 13:44
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: Blackbox
Architektura: x86

Postfix - automatyczne odbieranie e-maili

Post autor: Yuber »

Witam.
Mam taką sytuację:
Posiadam zewnętrzny serwer pocztowy (domena @xyz.pl - przykład). Na tym serwerze prócz kont użytkowników założone mam konto banki@xyz.pl. Na to konto przychodzą maile z różnych banków wraz z załącznikami.
Potrzebuję:
Założyć jakiś mechanizm który automatycznie co 15 minut sprawdzi skrzynkę, ściągnie maile i zapisze załącznik na dysku. W zależności od tego z jakiego banku pochodzi mail i w jakim miesiącu został wysłany potrzebuję rozrzucić załączniki po katalogach. NP:
bank: info@bank1.pl załącznik styczeń: z1 -> katalog /$/bank1/styczeń/z1
bank: info@bank1.pl załącznik marzec: z2 -> katalog /$/bank1/marzec/z2
bank: info@bank2.pl załącznik styczeń: z6 -> katalog /$/bank2/styczeń/z6
Chcę to postawić na UbuntuSVR i wykorzystać do tego Sambę ponieważ katalogi maja być widoczne spod WinXP i Win7 ale tylko do odczytu - z tym sobie poradzę. Zastanawiałem się czy warto było by użyć do tego Postfix'a ale niestety po pierwsze nie wiem czy uda się zrealizować takie zadanie a po drugie Postfix to dla mnie nowość.
Proszę o jakieś sugestie.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Postfix - automatyczne odbieranie e-maili

Post autor: ethanak »

1) Postfix raczej nie będzie chciał sprawdzać skrzynek (uprzedzam: Apache i Bind też nie) bo nie do tego służy.
2) Zapoznaj się z programem fetchmail
Yuber
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 22 gru 2007, 13:44
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: Blackbox
Architektura: x86

Re: Postfix - automatyczne odbieranie e-maili

Post autor: Yuber »

ethanak pisze:1) Postfix raczej nie będzie chciał sprawdzać skrzynek (uprzedzam: Apache i Bind też nie) bo nie do tego służy.
2) Zapoznaj się z programem fetchmail
No palnąłem być może ale to z racji nieznajomości Postfix'a - dzięki za sprostowanie.
ethanak pisze:2) Zapoznaj się z programem fetchmail
Sam Fetchmail chyba nie wystarczy prawda? Z tego co wyszukałem potrzebny byłby jeszcze chyba procmail i/lub coś jeszcze co spowodowało by zapisywanie samych załączników w katalogach na dysku, bo sam procmail tego chyba nie potrafi.
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4707
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Re: Postfix - automatyczne odbieranie e-maili

Post autor: jacekalex »

Procmail ma potężne możliwości, i dodatkowy program formail, może coś tam wykombinujesz.
Ewentualnie, jak znasz trochę perla, to w CPAN masz setkę modułów do obrobki maila na wszystkie strony, możesz spróbować naskrobać skrypta, ktory będzie wyczesywał załączniki, i podpiąć do procmaila.

Względnie jest kilka gotowych programów do załączników, np MunPack:
http://blog.lundscape.com/2009/10/extra ... d-munpack/

Przy okazji, pewna szukajka pokazała powyższego sznurka w ciagu 0,x sekundy od wpisania zapytania i walnięciu entera. :rotfl:

To by było na tyle
:craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Postfix - automatyczne odbieranie e-maili

Post autor: ethanak »

ew. jak znasz pythona to całość razem z odbieraniem napiszesz w pół godziny uwzględniając kawę i papieroska :)
ja bym tak robił.
Yuber
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 22 gru 2007, 13:44
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: Blackbox
Architektura: x86

Re: Postfix - automatyczne odbieranie e-maili

Post autor: Yuber »

jacekalex pisze: Przy okazji, pewna szukajka pokazała powyższego sznurka w ciagu 0,x sekundy od wpisania zapytania i walnięciu entera
Tak, przy czym trzeba wiedzieć czego szukać :) a pierwszy mój post już pokazał, że chcę przepłynąć rzekę tylko nie wiem co to łódka :) Dzięki za nakierowanie na właściwą ścieżkę.
ethanak pisze:ew. jak znasz pythona to całość razem z odbieraniem napiszesz w pół godziny uwzględniając kawę i papieroska :)
ja bym tak robił.
Heh. Nie python jest mi niestety obcy. Takie coś mogłem sobie strzelić w C# albo VBA rzeczywiście w pół godziny ale lubię sobie gmatwać życie :) Uznałem, że na ubuntu będzie działało lepiej sprawniej i bardziej niezawodnie (zresztą jak wszystko co stoi na linuxie w firmie)
Poczytałem i okazało się że dzięki Waszym podpowiedziom jest to praktycznie banał do skonfigurowania. A poszło tak:

Kod: Zaznacz cały

sudo apt-get install fetchail procmail mpack
mkdir $HOME/.mail
Tworzymy dwa pliki konfiguracyjne dla fetchmaila i dla procmaila

Kod: Zaznacz cały

vim $HOME/.fetchmailrc
# Ustawienia
set bouncemail
set no spambounce
set properies ""
#dane do skrzynki
poll <adres.serwera.pocztowego> proto pop3
user "<user@mail.com>"
password "<user_hasło>"
# uzycie procmail'a
mda "/usr/bin/procmail -f -F% -d <user>" # <user> to konto lokalne

Kod: Zaznacz cały

vim $HOME/.procmailrc
#Katalog
MAILDIR=$HOME/.mail
DEFAULT=$MAILDIR
#Log dla Procmail
LOGFILE=/var/log/proc_log
LOGABSTRACT=no
VERBOSE=off
#Reguły
:0 cw
*.*
$MAILDIR/Przychodzace
:0 cw
*^From:.*info@bank1.pl
| munpack -q -C $HOME/bank1
:0 cw
*^From:.*info@bank2.pl
| munpack -q -C $HOME/bank2
Oczywiście trzeba nadać odpowiednie uprawnienia dla pliku logu oraz utworzyć katalogi $HOME/bank(x) i dla samego .fetchmailrc (chmod 600)

Raz jeszcze dziękuję za naprowadzenie. To działa :)
Teraz pozostaje kwestia rozrzucenia tego po katalogach <miesiące>

EDIT:
Przy konfiguracji wykorzystałem:
http://blog.lundscape.com/2009/10/extra ... d-munpack/
http://szczypek.wordpress.com/2007/05/0 ... -procmail/
http://www.komsta.net/teksty/procmail.html
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4707
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Re: Postfix - automatyczne odbieranie e-maili

Post autor: jacekalex »

Rozrzucenie po katalogach?
Nie jest to niewykonalne czy trudne, ale trochę zabawy będzie.
Potrzebujesz w procmailu użyć programu formail - zeby wyciągnac Receiwed Date maila, potem porównać to z datą systemową, i na tej podstawie wybrać lub stworzyć folder.

Tu masz przykład, co można zrobić procmailem i formailem:
http://wiki.list.org/display/DOC/Proces ... il-formail
Do tego RTFM:

Kod: Zaznacz cały

man formail
Nie będę kombinował za Ciebie konfigu procmaila, ale masz tu przykład: wyciągnięcia dwóch zmiennych do porównania:

Kod: Zaznacz cały

ZMIENNA1=` LC_ALL=en_US,UTF-8 date +%Y/%b`
echo $ZMIENNA1
ZMIENNA2=`cat /tmp/testformail.txt  |formail -x "Date:" |awk '{print $4"/"$3}'`
echo $ZMIENNA2
unset ZMIENNA1
unset ZMIENNA2
To jest lamerski przykład z basha na mailu skopiowanym do pliku.
Jak znasz trochę Procmaila, to już chyba będzie z górki.

To by było na tyle
:craz:
Ubek308
Zakręcona Traszka
Zakręcona Traszka
Posty: 574
Rejestracja: 25 maja 2011, 10:17
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Postfix - automatyczne odbieranie e-maili

Post autor: Ubek308 »

man procmailex
Yuber
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 22 gru 2007, 13:44
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: Blackbox
Architektura: x86

Re: Postfix - automatyczne odbieranie e-maili

Post autor: Yuber »

Pomijam na razie sprawdzanie maila po dacie - tylko ze względu na to, że jeszcze zaprzyjaźniam się z procmailem :)
Zrobiłem coś takiego na początek:

Kod: Zaznacz cały

MAILDIR-$HOME/.mail
DEFAULT=$MAILDIR

LOGFILE= /var/log/procmaillog
LOGABSTRACT=no
VERBOSE= off

SHELL=/bin/sh
DATE=`date +%Y-%m`
KATALOG= /home/user/Doc

:0ic
* ? test ! -d $KATALOG
| mkdir $KATALOG
:0ic
* ^From:.info@bank1.pl
* ? test ! -d $KATALOG/Bank1
| BN=$KATALOG/Bank1 | mkdir $BN
:0ic
* ^From:.info@bank2.pl
* ? test ! -d $KATALOG/Bank2
| BN=$KATALOG/Bank2 | mkdir $BN
:0ic
* ? test ! -d $BN/$DATE
| mkdir $BN/$DATE
:0
* ? test -d $BN/$DATE
| munpack -q -C $BN/$DATE
Spodziewałem się, że taki skrypt spowoduje, że zostanie utworzona ścieżka do katalogu /home/user/Doc/Bank1 i /home/user/Doc/Bank1 wewnątrz których będą katalogi miesięcy (2012-12,2013-01 -oczywiście bieżący - itp).
Niestety coś skopane mam przy:

Kod: Zaznacz cały

| BN=$KATALOG/Bank1 | mkdir $BN
| BN=$KATALOG/Bank2 | mkdir $BN
Coś robię tu nie tak. Niestety nie do końca wiem co.
Ubek308
Zakręcona Traszka
Zakręcona Traszka
Posty: 574
Rejestracja: 25 maja 2011, 10:17
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Postfix - automatyczne odbieranie e-maili

Post autor: Ubek308 »

Primo:
Co ci mowi /var/log/procmaillog ?

Secundo:
Ja tu widze cos w stylu: "jesli przyjdzie mail to stworz katalog".
Nie widze akcji "zapisz pozniej maila do tego katalogu".
Powstaja te katalogi ?

Tertio:
Zanim wyplyniesz na glebokie wody moze zacznij od nauki plywania.
Zrob najprostszego procmaila na swiecie i zobacz czy dziala.
Niech ci na poczatek zapisuje maile od konkretnego From do konkretnego pliku.
ODPOWIEDZ

Wróć do „Sieci, serwery, Internet”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 18 gości