1

Temat: wyciaganie adresow e-mail

mam maly problem - wysylajac mailing do uzytkownikow mojego serwisu dostaje ponad 10 tysiecy odpowiedzi z 'nieaktualnymi' adresami e-mail. W zdecydowanej wiekszosci sa to zwrotki od roznej masci mailer-demonow

czy jest jakas mozliwosc 'wyciagniecia' z tresci listu (owej zwrotki) adresow email, potem juz sobie je przepuszcze przez baze danych i po prostu powylaczam mailing liste dla tych userow gdzie dostaje zwrotki zeby niepotrzebnie nie generowac ruchu na sieci...

maile wygladaja mniej wiecej tak:

Hi. This is the qmail-send program.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.
<user@domena.pl>

2

Odp: wyciaganie adresow e-mail

Sądzę, że z wyciągnięciem adresów nie będzie żadnych problemów. Do tego celu musisz użyc filtru, który będzie reagował na zwrotki (warunkiem zadziałania filtru może być np. obecność tekstu "mailer-daemon" w polu nadawcy albo coś innego, co w jednoznaczny sposób określa zwrotkę). Być może warunek działania filtru musi być bardziej złożony, ale to Ty na podstawie otrzymywanych zwrotek powinieneś go jednoznacznie określić.

Ważniejsze w Twoim przypadku są operacje, które ma wykonywać filtr. Prawdopodobnie należałoby przenosić zwrotki do jakiegoś wydzielonego folderu - po to by nie utracić być może ważnej przesyłki, przynjamniej w poczatkowej fazie konfiguracji filtrów. Przeniesienie wiadomości do wskazanego folderu byłoby zatem pierwszą operacją filtru.

Rodzaj drugiej operacji zależy od tego w jaki sposób chcesz zasilać swoją bazę adresami wyciętymi z treści zwrotek. Najprościej będzie zapisywać adresy do pliku tekstowego, po jednym adresie w wierszu, a następnie pobrać je do bazy danych. Sam zapis do pliku zrealizuje w filtrze operacja eksportu wiadomości do pliku tekstowego w formacie czystego tekstu według określonego szablonu. Szablon użyty do eksportu jest tu sprawą najważniejszą, ponieważ on właśnie z całej treści wiadomości będzie wycinał adres e-mail. Oto przykładowa zawartość szablonu z kilkoma makrami, który robi to czego potrzebujesz:

%SetPattRegExp="(?is)(\<[\.\w]*@[\.\w]*\>)%RegexpMatch(%OText)

Sprawdź działanie takiego filtru. Potem można to rozbudowywać, np. dołączając półatomatyczną operację zapisu wyciętego adresu bezpośrednio dto tabeli bazy danych (wymaga to zastosowania wtyczki SQL Plugin i nie zawsze się udaje, ale próbować można).

3

Odp: wyciaganie adresow e-mail

dodalem na koncu szablonu "

jednak caly czas exportuje mi puste linie (ilosc linii odpowiada ilosci odfiltrowanych maili)

4

Odp: wyciaganie adresow e-mail

me4891 napisał/a:

dodalem na koncu szablonu "

Nie w tym miejscu, bo to ja się pomyliłem. Prawidłowy szablon wygląda tak:

%SetPattRegExp="(?is)(\<[\.\w]*@[\.\w]*\>)"%RegexpMatch(%OText)

5

Odp: wyciaganie adresow e-mail

Jeśli chcesz wycinać adresy bez ostrych nawiasów (czyli bez "<...>"), użyj tego szablonu:

%SetPattRegExp="(?is)\<([\.\w]*@[\.\w]*)\>"%RegexpMatch(%OText)

Można tu użyć jakiejś alternatywy, wszystko zależy od postaci adresów występujących we zwrotkach (w ostrych nawiasach lub bez, za jakimś charakterystycznym tekstem, na początku wiersza lub w środku itp.).