Index Hem Bakåt Framåt

Server funktioner

Weasel är en post office mail server baserad på POP3 standarden, känd som RFC 1939 eller STD 53. Weasel implementerar alla funktioner i POP3 standarden.

Weasel inkluderar en SMTP server för att ta emot mail, och SMTP klient programvara för att hantera utgående mail. SMTP programvaran är baserad på en standard känd som RFC 821. Om du vill, kan du avaktivera den inbyggda SMTP servern och använda en separat SMTP server från någon annan källa.

POP3 subsystem

Weasel's POP3 server, vilken är vad en klient kontaktar för att hämta sin mail, är en komplett implementation av POP3 standarden, därför bör den vara kompatibel med vilken standard POP3 klient som helst.

Alla klienter måste ange ett användarnamn och ett lösenord. (Användarnamnet är det som kommer före '@' i användarens e-mail adress). Lösenord sätts av ett särskilt program som kallas Setup, vilket är beskrivet senare i detta dokument.

SMTP subsystem

SMTP server är en del av systemet som accepterar inkommande mail. Weasel SMTP är en ner-skalad version som implementerar alla de nödvändiga kommandona i standarden, men inte alla extra kommandon. De extra utökningarna är obsoleta, enligt min åsikt, och vi kunde ta bort en massa onödig system overhead genom att inte ta med dem.

Vidarbefordran av mail

En e-mail adress har formen user@domain, där 'user' är ett användarnamn, och 'domain' antingen är ett maskinnamn eller något som kommer att mappas till ett maskinnamn av en namnserver. Om 'domain' är en domän för vilken den aktuella maskinen antas hantera mailen, då har vi mail för en lokal destination. Uppenbart måste varje SMTP server kunna hantera detta fall. Om 'user' är ett giltigt användarnamn på den aktuella maskinen, kommer mailen att levereras; i annat fall, kommer den att avvisas.

De flesta SMTP servers kommer också att acceptera mail för adresser på andra maskiner. Om servern accepterar sådana icke-lokala adresser, accepterar den mailet och vidarebefordrar det mot sin slutdestination. Detta är för att tillåta fallet - som används väldigt ofta - där det inte finns någon direkt sökväg för mail från sändaren till slutdestinationen. I ett sådant fall kommer SMTP servern att agera som en "relay host" och vidarebefordra mailen.

Skräpmailare älskar "relay hosts". Att skicka ut en miljon skräpmail kan vara dyrt, eftersom det kan binda upp din maskin i timmar. För att undvika sådan overhead, kan människor som sänder ut junkmail ofta välja att använda en annan maskin, mer eller mindre slumpmässigt vald, som en "relay host", (Dom kan inte använda samma maskin hela tiden, eftersom dom skulle bli fast.) En "relay host" är vanligtvis ett oskyldigt offer i det här fallet, men ägaren av en "relay host" blir ofta beskylld för skräpmailen. Att använda en "relay host" hjälper också sändaren av mailen att maskera sig själv.

På grund av detta missbruk, har Weasel starka restriktioner för vidarebefordring. Den accepterar begäran om vidarebefordring i endast tre fall:

  1. när destinationsdomänen finns på listan över domäner för vilka vi accepterar att skicka vidare mail; eller
  2. när den host som skickar mail finns på listan över "trusted hosts" (betrodda värdar); eller
  3. när den host som sänder tillfälligt har blivit en betrodd värd som ett resultat av en POP login, och systemadministratören har aktiverat POP-före-SMTP autentisering.

All annan begäran om att vidarebefordra mail till en annan maskin avvisas.

Fall 1 ovan passar för den situation där din maskin är en mail gateway för din organisations lokala nätverk, eller är en backup server för en annan mail server. Fall 2 är för de fall där din maskin måste agera som en "relay" för en grupp av lokala maskiner. Syftet med fall 3 är att låta dina POP användare få tillgång till en mailservice för utgående mail, som ett illägg för den inkommande mailservicen som dom automatiskt har tillgång till genom att vara registerade POP användare, oberoende av varifrån de loggar på.

Hur mail lagras

Efter att ett e-mail meddelande är accepterat av SMTP servern, men innan det plockas upp av en POP klient, lagras meddelandet som en fil på en lokal hårddisk. När du ställer in Weasel, specificerar du en katalog som kommer att användas som "mail root". Denna katalog har en underkatalog för varje användare. Varje meddelande är lagrat som en fil xxxxxxxx.MSG, där xxxxxxx är en internt genererad identifierare.

Bortsett från *.MSG filer, kan en användares mail katalog innehålla en fil som kallas LOCK.!!!. Den skapas när en POP klient börjar accessa katalogen, och raderas när POP sessionen avslutas. Under tiden filen existerar, tillåts ingen annan POP klient att komma åt katalogen. SMTP servern kan fortfarande lagra nya mail under perioden, men den nya mailen kan inte ses av POP klienten förrän nästa gång som klienten loggar på. Tidsskillnaden är inte särskilt viktig, eftersom de flesta POP klienter söker efter nya mail med några minuters mellanrum.

Setup programmet skapar en extra katalog som kallas "forward", som en underkatalog till mailroot katalogen, för att hålla utgående mail som väntar på att sändas ut. I de flesta fall kommer mailfilerna att förbli i den katalogen under en kort tid, men ibland misslyckas överföringen. (Destinationen kan vara utom räckhåll, till exempel.) Weasel försöker att återutsända misslyckade utsändningar ett antal gånger över en period på omkring fyra dagar, om den anser att ett försök är värt att prova. (Det beror på skälet till misslyckandet. Om, till exempel, destinationsvärden skickar tillbaka ett "no such user" svar är det ingen idé att återupprepa försöket.) Om det andra försöket misslyckas, kommer avsändaren att få tillbaka ett meddelande som säger att Weasel fortfarande försöker leverera mailet. Om det slutliga försöket också misslyckas, kommer mailet att returneras till avsändaren med en not som säger att det inte kunde levereras.