Index Hem Bakåt Framåt

Filter

I Weasel's setup har du en möjlighet att specificera ett filter som körs före leverans. Filtret, om det finns, kommer att exekveras efter att Weasel's SMTP server har erhållit ett mail (header + body), men innan den har stoppat det i en lokal mailbox eller vidarebefordrat det.

Vid den här tidpunkten är meddelandet en temporär meddelandefil, i ett standard e-mail format: header rader, en tom rad, och sedan själva meddelandet. Den första header raden är "Return-path:" raden, och den följs av en eller flera "Received:" rader. Header rader efter dessa kan uppträda i vilken ordning som helst, beroende på avsändaren.

Filtret kan utvärdera den temporära meddelandefilen, eventuellt kopiera den eller ändra dess innehåll, och sedan skicka en returkod till Weasel som talar om ifall meddelandet skall skickas eller inte.

Filtret kan vara skrivet som ett REXX script, eller alternativt kan det vara skrivet i något programmeringsspråk som du föredrar och kompilerat och länkat till ett EXE format.

Filtret anropas av Weasel med kommandot

         CMD.EXE /C filterprog messagefile namefile
där "Filterprog" är namnet på den CMD eller EXE fil som skall köras, "Messagefile" är den fulla sökvägen till den temporära meddelandefilen, och "Namefile" är den fulla sökvägen till en textfil innehållande en lista på e-mail adresser, en per rad. (Radavslutningen är en vagnretur följt av en ny rad frammatning.) Den första raden identifierar avsändaren, och de återstående raderna är e-mail adresser till mottagarna.
Filtret skall returnera ett av följande värden.

0

1


2






3





4

hantera meddelandet normalt, med andra ord, leverera det som om det inte hade funnits något filter.

rekonstruera listan över mottagare från namnfilen, därför att filtret har förändrat namnfilen; och fortsätt sedan att behandla meddelandet normalt.

leverera inte meddelandet (vi antar att filtret redan har tagit hand om leveransen, om så önskas), och returnera svaret

          250 OK
  
till klienten.

leverera inte meddelandet, och skicka svaret
          554 Mail rejected by server
  
till klienten.

leverera inte meddelandet, och returnera ett svar som tas från den första raden i namnfilen. Det betyder, att filtret i det här fallet har skrivit över första raden hos namnfilen med meddelandet, startande med en tre-siffrig kod, att det önskar bli sänt tillbaka till avsändaren. (Listan över mottagare i namnfilen kan bli korrupt av den här operationen; det spelar ingen roll, eftersom vi inte har ytterligare behov av den listan i fallet av ett avvisat meddelande.)

NOTERA: I alla fem fall, raderas den temporära meddelandefilen efter att filtret har sett den och Weasel har kopierat den till användarnas mailboxar. Om filtret vill ta hand om leveransen (fall 2) måste det ta en kopia av meddelandefilen.

Om filtret innehåller något fel, eller returnerar en resultatkod utanför området [0..4], kommer Weasel att agera som om resultet hade varit 0, dvs. filtret har ingen effekt. Detta är ett skydd mot dåligt skrivna filter.