To dobrze, że nie jest używane kodowanie Base64, ponieważ byłyby kłopoty z rozszyfrowaniem wiadomości do postaci źródłowej. W tym przypadku wszystko udaje się bez problemów.
Ponieważ The Bat! nie ma możliwości uzyskania źródłowej postaci wiadomości z poziomu szablonu (brak takiego oryginalnego makra, a inne wtyczki z makrami praktycznie nie działają w najnowszych wersjach), rozbijemy cały proces wyłuskiwania URL na dwa etapy. W pierwszym etapie tworzy się w swoisty "słownik" zapisywany do pliku, który będzie zawierał identyfikatory wiadomości przychodzącej i URL występujące po słowach "Zapytanie o". W drugim etapie zadziała szablon podręczny, który wyłuska żądany URL ze "słownika" na podstawie identyfikatora wiadomości, na którą odpowiadamy. Wywołanie tego szablonu należy umieścić w tym miejscu szablonu odpowiedzi, w którym ma być wpisany żądany URL.
A teraz konkrety:
1. Filtr tworzący słownik, który należy wkleić do grupy filtrów poczty przychodzącej. Jako kryterium jest w nim wybrana "Dowolna wiadomość", ale można to bardziej zawęzić. Filtr wykonuje dwie operacje: (1) zapis części HTML wiadomości o nazwie "Wiad.html" do katalogu "C:\Attach" i (2) zapis identyfikatora i URL do pliku "słownika" o nazwie "msg.txt" w tym samym katalogu.
$$$$ TB! Message Filter $$$$
beginFilter
UID: [957D4DF1.01D4E308.27A4A748.2ABCA66A]
Name: Zapis\20zalacznikow
Filter: {\0D\0A\20`21\0D\0A}
ExtractFiles OverwriteExist AutoPath dir C:\5CAttach dirRelative %EXEDRIVE%\5CAttach mask Wiad.html
ExportMessage FmtText filename C:\5CAttach\5Cmsg.txt filenamerelative %EXEDRIVE%\5CAttach\5Cmsg.txt template %SetPattRegexp\3D\27(?isU)^(.*)(Zapytanie\20o\5Cs)(.*)(href\3D\22)(.*)(\22>\22)\27%-\0D\0A%RegexpBlindMatch(%Put(\22C:\5CAttach\5CWiad.html\22))%-\0D\0A%OMsgID\20:\20%SubPatt(5)%-
IsActive
Ignore
endFilter
Przy zapisie danych do "słownika" jest wykorzystywany szablon filtru o następującej postaci:
%SetPattRegexp='(?isU)^(.*)(Zapytanie o\s)(.*)(href=")(.*)(">")'%-
%RegexpBlindMatch(%Put("C:\Attach\Wiad.html"))%-
%OMsgID : %SubPatt(5)%-
2. Drugi etap polega na skorzystaniu z następującego szablonu podręcznego, np. o nazwie i identyfikatorze "URL". Wynikiem działania tego szablonu będzie URL, pojawiający się w miejscu jego wywołania w szablonie odpowiedzi, czyli %QT("URL"). Sam szablon "URL" ma następującą postać:
%SetPattRegexp='(?isU)^(%OMsgID)(\s:\s)(.*)$'%-
%RegexpBlindMatch(%Put("C:\Attach\msg.txt"))%-
%SubPatt(3)%-
Sprawdziłem działanie tego mechanizmu i nie powinno być kłopotów. Oczywiście, można jeszcze dostroić nazwy, ścieżki itp. - ale ogólna zasada powinna pozostać bez zmian. Dodatkowa uwaga: plik "słownika" o nazwie "msg.txt" tworzony w katalogu "C:\Attach" powiększa się przy odbiorze i filtrowaniu kolejnych wiadomości. Nic nie stoi na przeszkodzie, aby co jakiś czas go usuwać.