Niestety, nie mam możliwości powrotu do Twojej wersji programu w celu upewnienia się czy ma on błędy psujące filtrację w niektórych przypadkach. Piszesz o ciekawych właściwościach The Bat! - potwierdzam, bo ja również z naszej dyskusji czegoś się nauczyłem.

Przede wszystkim nigdy nie miałem potrzeby sprawdzenia jak działa ustawianie parametru w filtrze i jak później ten parametr można wykorzystać. Okazuje się, że nie jest to sprawą trudną. W tym konkretnym przypadku filtracji za pomocą drugiej z rozważanych tu metod cały algorytm wygląda następująco:

1. Pierwszy filtr nadaje wartość parametrowi, wywołując szablon podręczny służący do obliczania tej wartości. Wartość ta wynosi 0 albo 1, zależnie od spełnienia warunku określonego w szablonie (w tym przypadku było to sprawdzanie różnicy dat).

2. Filtr podrzędny na podstawie ustawionej przez filtr główny wartości tego parametru wykonuje jakąś operację - tutaj był to eksport wiadomości.

Taki schemat można wykorzystać do różnych celów - zachęcam do prób z innymi filtrami i szablonami. Nie jest do tego wymagana głęboka znajomość jakiegoś języka programowania - na ogół wystarczy umiejętność opisu działań logicznych, które chcemy wykonać. The Bat!, jak wiadomo, może (prawie) wszystko :-)

Nie widzę niczego złego w tych nagłówkach, a na dodatek "u mnie działa". Po imporcie tych wiadomości z pliku mogę je filtrować bez kłopotów. Różnice dat obliczane przez makro %XMP_TimeDiff są poprawne w obydwu przypadkach, działa zarówno pierwsza, jak i druga metoda filtrowania.

Zaczynam podejrzewać, że w Twojej wersji programu może coś działać źle. Spróbuj z nagłówków usunąć wiersze z wpisami Status: RO i Importance: Normal, bo jeśli się nie mylę, niezbyt pasują one do standardu RFC2822.

Jeśli nie masz nic tajnego w nagłówkach wiadomości sprawiających kłopoty, wklej je tutaj (wycinając adresy i inne wrażliwe dane). Zobaczymy co w nich dziwnego.

754

(9 odpowiedzi, napisanych Ogólne)

Program (spakowany sam plik wykonywalny) jest tutaj: http://www.ritlabs.com/download/files3/ … b42331.rar

755

(9 odpowiedzi, napisanych Ogólne)

Ja nie mam problemów (Vista Home Premium PL, komputer nienajnowszy z 4 GB RAM). Na angielskojęzycznej liście dyskusyjnej TBBETA także cicho...

The Bat! jest stary i nie wszystko będzie w nim działać, a w szczególności mogą nie działać niektóre makra. Nie dotyczy to jednak makr z wtyczki XMP, w których prawdziwą przyczyną niedziałania dla niektórych wiadomości jest według mnie błędny wpis daty (czyli ów nieszczęsny "Mon Feb 03 18:52:33 CET 2003").

Wykonaj niekłopotliwy test: utwórz prosty szablon podręczny (menu Narzędzia | Szablony podręczne):

Odebrano: %ORcvDate
Utworzono: %ODate

Zaznacz feralną wiadomość i sprawdź w edytorze szablonów podręcznych co się wyświetli w po użyciu przycisku Podgląd. Przekonamy się wówczas jak Twój The Bat! interpretuje taki niepoprawny wpis daty.

P.S. Zapomniałem, że w Twojej wersji chyba nie ma takiego rozszerzonego edytora szablonów. W celu przetestowania tego szablonu zapisz go i następnie spróbuj odpowiedzieć na tę oporną wiadomość. W edytorze wiadomości wpisz identyfikator zachowanego szablonu i zaraz po tym naciśnij kombinację klawiszy Ctrl+Spacja.

757

(6 odpowiedzi, napisanych Ogólne)

Podejrzewam zatem, że na Twoim komputerze jest jakaś blokada portu 578 (sprawdź ustawienia firewalla, jeśli jakiś u Ciebie działa) - a poza tym powinien to być port 587!. Niekiedy przyczyną może być program antywirusowy, który pełni rolę pośrednika między The Bat! a serwerem SMTP - wówczas trzeba zgrać ustawienia tak, aby pasowały do charakterystyki serwera.

758

(9 odpowiedzi, napisanych Ogólne)

Używam najnowszej wersji beta (4.2.33.1) i w niej ten efekt nie występuje - czyli pewnie coś poprawiono, chociaż nie widziałem zgłoszeń błędu.

To dziwne, że u Ciebie nie zadziałał ten pierwszy sposób. Sprawdź zatem działanie samego szablonu, zaznaczając daną wiadomość, potem otwierając panel ustawień filtru i edytor szablonu dla Twojego filtru. Na górze okna edytora masz przycisk Podgląd, który otwiera okno z wynikiem działania szablonu na daną wiadomość. Jeśli pojawi się w nim tekst mid:xxxxxxxxx - szablon działa poprawnie (różnica dat dla Twojego przypadku musi dla wybranej wiadomości być większa albo równa 20).

Drugi sposób z zestawem filtrów i eksportem całych wiadomości do pliku jest chyba bardziej efektywny i radzę go wypróbować - u mnie działa na Windows XP i Vista (PL), dla programów The Bat! 4.2.33.1 beta i The Bat! Voyager 4.2.25.

Której wersji programu używasz i na jakim systemie Windows pracujesz?

Twoje próby pokonania ułomności The Bat! są jak najbardziej prawidłowe, ale okazuje się, że jest jeszcze lepszy sposób: użycie rozszerzonego zestawu makr z wtyczki XMP, dostępnej do pobrania z tej witryny: http://thebat.pl/download/index.php?ite … p;catid=16

W tym zestawie znajduje się makro wyliczające bezwzględną różnicę czasu np. między dwiema datami. Jego użycie wymagało trochę zabawy z odpowiednim sformatowaniem czasu, ale nareszcie działa (u mnie). Szablon filtru można zatem zmienić na następujący:

%_diff=$%XMP_TimeDiff("%ORcvDate('yyyy-mm-dd')","%ODate('yyyy-mm-dd')")$%-
%IfN:%_diff>=xx:'mid:%SetPattRegexp="<(.*)>"%RegexpMatch="%OMsgID"'

W tym szablonie xx oznacza wartość bezwzględną różnicy dat, a nie jej kwadrat, i taką liczbę tam należy wpisać.

Jest też możliwe zbudowanie na tej bazie dwóch filtrów, które automatycznie wyeksportują wiadomości z różniącymi się datami. Oto gotowy zestaw filtrów do skopiowania i wklejenia:

$$$$ TB! Message Filter $$$$
beginFilter
UID: [DA615404.01CAA4B0.51A42D50.321AA695]
Name: Różnica\20dat\201
Filter: {\0D\0A\20`0`0`@\0D\0A}
UserParam param Date_diff value %QT(Dates_diff)
IsContinue
IsActive
Ignore
endFilter
1
beginFilter
UID: [4734A5EA.01CAA4B3.191656EB.19A1629C]
Name: Eksport
Filter: {\0D\0A\20`27`Date_diff`0`1\0D\0A}
ExportMessage FmtUnix filename E:\5Clista.txt filenamerelative %EXEDRIVE%\5Clista.txt
IsContinue
IsActive
Ignore
endFilter

Pierwszy filtr korzysta z szablonu podręcznego o identyfikatorze Dates_diff i zawartości takiej jak niżej:

%_diff=$%XMP_TimeDiff("%ORcvDate('yyyy-mm-dd')","%ODate('yyyy-mm-dd')")$%-
%_diff2='%Calc="%_df*%_df"'%-
%IfN:%_diff>=xx:1:0

W wyniku otrzymujesz plik tekstowy E:\lista.txt z wyeksportowanymi wiadomościami. Nazwę i miejsce tworzenia pliku możesz oczywiście zmienić. Wartość xx w szablonie to minimalna różnica w dniach dla daty odbioru i utworzenia wiadomości - musisz ją wpisać zgodnie ze swoim życzeniem.