Temat: Podmiana zawartości pola CC

Witam,
mam problem z wycinaniem mojego własnego adresu z pola "Kopia dla", przy zastosowaniu "Odpowiedz wszystkim". Czasem tam pojawia się mój własny adres i wkurzające jest jego ręczne usuwanie, chciałbym to zrobić jakimś makrem. Mam zainstalowaną wtyczkę Extended Macro Plugin, robię coś takiego:
%Cc=%XMP_StrRepl("%Cc","adres_do_wyciecia@domena.pl","")
działa, tylko dopisuje mi otrzymany łańcuch na koniec, nie umiem zastąpić dotychczasowej wartości pola CC nową.
Ma ktoś jakiś pomysł jak to zrobić ?

2

Odp: Podmiana zawartości pola CC

Tak właśnie działa makro %Cc - dopisuje adres, a nie go zastępuje (patrz podręcznik). W Twoim przypadku należy najpierw zapamiętać zawartość pola Cc, oczyścić to pole i dopiero potem użyć makra z wtyczki XMP, biorąc jako argument zapamiętaną zawartość pola Cc.

Możesz to zrobić za pomocą następującego zestawu makr:

%_Cc1(%Cc)%-
%Cc=""%-
%Cc=%XMP_StrRepl("%_Cc1","adres_do_wyciecia@domena.pl","") 

3

Odp: Podmiana zawartości pola CC

Dziękuję za podpowiedź, jakoś nie umiałem nigdy wgryźć się w składnię makropoleceń. Rzeczywiście, kierowałem się tylko podpowiedziami w programie, a nie helpem.
Jak widzę, Kluczowa tu jest funkcja %Cc=""%- co oznaczają tu dwa ostatnie znaki ?

4

Odp: Podmiana zawartości pola CC

Makro %- jest wprowadzone po to aby uchronić się przed generacją zbędnych pustych wierszy w wiadomości, gdy w szablonie używa się innych makr. Makro to po prostu "zjada" znaki LF (a w zasadzie CRLF) - dzięki temu tekst nie ma pustych miejsc. Dlatego należy je umieszczać na końcu wierszy w szablonie (oczywiście tam gdzie ma to sens).

5

Odp: Podmiana zawartości pola CC

Czyli makro %- nie jest tu istotne, nie rozumiem w takim razie dlaczego %Cc="" kasuje pole CC, czyli nadpisuje go pustym ciągiem a nie dopisuje do niego pusty ciąg. Wygląda na to, że nadpisuje tylko jeśli argumentem jest pusty ciąg a dopisuje jeśli argument nie jest pusty. Taka widać jego uroda wink

6

Odp: Podmiana zawartości pola CC

Zgadza się, makro %Cc, podobnie jak %To czy %Bcc z pustym argumentem jest używane do kasowania zawartości odpowiednich pól nagłówka.

7

Odp: Podmiana zawartości pola CC

Mam jeszcze problem z usunięciem ciągu "<>" z pola Cc, prawdopodobnie XMP interpretuje to jako jakieś znaki specjalne, albo robię błąd, bo funkcja
%_A="<>"%-
%_Cc1(%Cc)%-
%Cc=""%-
%_Ccgot=%XMP_StrRepl("%_Cc1","%_A","")%-
%Cc=%_ccgot%-
mi nie działa, dalej mam na końcu pola Cc znaki "<>"
Popełniam jakiś błąd ?

8

Odp: Podmiana zawartości pola CC

Nie do końca przemyślałem działanie tych makr. Cóż będzie się działo jeśli chcesz usunąć jakiś wpis z listy odbiorców i ten wpis znajduje się w środku listy? Makro %XMP_StrRepl zastąpi go pustym łańcuchem, ale zostanie jeszcze przecinek. Należałoby zatem usuwać ciąg znaków razem z poprzedzającym go przecinkiem i spację, ale wówczas makro nie działa (przynajmniej u mnie).

Poza tym popełniłem jeszcze jeden błąd: w pierwszym wierszu szablonu użyłem wyrażenia %_Cc1(%Cc), a powinno być %_Cc1(%CcList). Poza tym szablon zmieniający w taki sposób nagłówki musi byś wywoływany dopiero wtedy, gdy nagłówki zostaną wypełnione pierwotną zawartością - wówczas można je modyfikować.

Nie mam teraz pomysłu jak taką modyfikację skutecznie zautomatyzować.

9

Odp: Podmiana zawartości pola CC

generalnie to działa, tylko zostają znaki typu <>, których nie umiem usunąć. Nie wygląda to elegancko ale ważne, że nie wysyłam sam sobie odpowiedzi ;o)
Tak myślę, czy nie dałoby się wyczyścić tego pola całkowicie i zbudować go od nowa, pomijając wybrany adres. Do wyłuskania adresów mogłoby się nadać makro %XMP_XtrEMLs, jak myślisz ?

10

Odp: Podmiana zawartości pola CC

Makro %XMP_XtrEMLs służy do wyłuskiwania adresów e-mail zawartych w treści wiadomości, a nie w nagłówkach - nie jest zatem przydatne do tego celu. Poza tym, nadal pozostaje problem usunięcia wybranego tekstu, który jak widać nie do końca działa skutecznie.

Czy podając adres do wycięcia dodajesz do niego ostre nawiasy, tzn. czy pierwszy wiersz Twojego szablonu ma postać:

%_A="<adres_do_wycięcia>"%-

Wypróbuj jeszcze taki zapis.