De meeste mensen halen hun email vanaf de mailserver op via POP3. POP3 is een protocol met vele nadelen:
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
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.