Verder Terug Inhoud

3. Email comprimeren

3.1 Inkomende Emails (POP3, IMAP4)

De meeste mensen halen hun email vanaf de mailserver op via POP3. POP3 is een protocol met vele nadelen:

  1. POP3 transporteert het wachtwoord in gewone tekst. (Er zijn SSL-implementaties van POP/IMAP en een challenge/response authenticatie, gedefinieerd in RFC-2095/2195).
  2. POP3 veroorzaakt veel protocol overhead: ten eerste verzoekt de client om een bericht, dan stuurt de server het bericht op. Daarna verzoekt de client het getransporteerde artikel te verwijderen. De server bevestigt de verwijdering. Daarna is de server pas klaar voor de volgende transactie. Dus voor iedere email zijn 4 transacties nodig.
  3. Alhoewel email hoog comprimeerbaar (factor=3.5) is, transporteert POP3 de mail ongecomprimeerd. (factor=3.5).

Je zou POP3 kunnen comprimeren door localhost:110 via een gecomprimeerde connectie naar je ISP's POP3-socket door te sturen. Daarna moet je je mail-client vertellen een verbinding te maken met localhost:110 om mail te downloaden. Dat beveiligt en versnelt de connectie -- maar de downloadtijd ondergaat nog steeds de aan POP3 inherente protocol overhead.

Het heeft zin POP3 door een wat efficiënter protocol te vervangen. De gedachte hierachter is de gehele mailbox in één keer te downloaden zonder het genereren van de protocol overhead. Bovendien heeft het zin de connecties te comprimeren. De juiste tool welke beide mogelijkheden biedt is SCP. Je kunt je mailbestand als volgt downloaden:

scp -C -l loginId:/var/spool/mail/loginid /tmp/newmail

Maar er is een probleem: wat gebeurt er als een nieuwe email arriveert op de server tijdens het downloaden van je mailbox? De nieuwe mail zou verloren gaan. Daarom heeft het meer zin de volgende opdrachten te gebruiken:

ssh -l loginid mailserver -f mv /var/spool/mail/loginid /tmp/loginid_fetchme

scp -C -l loginid:/tmp/my_new_mail /tmp/loginid_fetchme

Een verplaatsing (mv) is een elementaire bewerking, dus je geraakt niet in moeilijkheden als je tijdens de uitvoering van de opdrachten nieuwe mail ontvangt. Maar als de directory's /tmp/ en /var/spool/mail op de mailserver niet op dezelfde disk staan, krijg je wellicht problemen. Een oplossing hiervoor is een lockbestand op de server aan te maken voordat je de mv uitvoert: touch /var/spool/mail/loginid.lock. Je zou het erna moeten verwijderen. Een betere oplossing is het bestand loginid naar dezelfde directory te verplaatsen:

ssh -l loginid mailserver -f mv /var/spool/mail/loginid /var/spool/mail/loginid_fetchme

Daarna kun je formail gebruiken in plaats van procmail om /tmp/newmail naar de juiste foler(s) te filteren: formail -s procmail < /tmp/newmail

3.2 Uitgaande Email (SMTP)

Je stuurt email over gecomprimeerde en versleutelde SSH-connecties om te: to:

Als je SSH-toegang op de mailserver hebt, heb je de volgende opdracht nodig:

ssh -C -l loginid mailserver -L2525:mailserver:25

Als je geen SSH-toegang tot de mailserver hebt, maar tot een server die het toestaat dat je je mailserver als relay gebruikt, is de opdracht:

ssh -C -l loginid other_server -L2525:mailserver:25

Daarna kun je je mailclient (of mailserver: zie "smarthost") zodanig configureren dat het mail naar de localhost poot 2525 stuurt.


Verder Terug Inhoud