Een IMAP server is ideaal als je meerdere devices tegelijk gebruikt voor hetzelfde account. Hier leg ik uit hoe je dit voor meerdere users configureert.

In een vorig artikel heb ik uitgelegd hoe je een IMAP server op je Debian server kunt opzetten. Deze gebruikt tot nu toe bij mij maar 1 globale email box.

Voor de kinderen had ik het anders geregeld via een GMail account. Hierbij hebben de kinderen 1 GMail account en heb ik ingesteld dat ook emails van andere accounts (b.v. ons ‘matthijsseninfo’ account) wordt gescraped binnen GMail. Dit werkt op zich prima maar had een aantal nadelen:

  • Google kan echt alles van je volgen
  • Er is een maximum aantal accounts dat je kunt toevoegen
  • Het ophalen van nieuwe email van externe accounts kan soms tot 1 uur duren (korter kun je niet instellen)

Ik besloot daarom om ook email boxen voor de kinderen in te richten op de IMAP server van mijn Debian Server. In dit artikel leg ik uit hoe ik dit heb gedaan. Ik gebruik in mijn uitleg de user ‘melissa’.

Voeg eerst een nieuwe gebruiker toe aan je Debian server:

adduser melissa

Log nu in als gebruiker ‘melissa’ en creëer een mail directory:

mkdir /home/melissa/mail

Controleer de file ‘/etc/dovecot/conf.d/10-auth.conf’ en zorg dat het volgende ingesteld staat

auth_mechanisms = plain login
mail_location = mbox:/home/%u/mail/:INBOX=/var/mail/%u

Restart je Dovecot service:

/etc/init.d/dovecot restart

In principe hebben we nu een nieuwe email box insteld op de IMAP server. Nu moeten we ervoor gaan zorgen dat deze automatisch emails ophaalt. Dit doen we met ‘Fetchmail’. Eerst had ik deze globaal ingesteld en dat gaan we nu veranderen dat dit per gebruiker gebeurt.

Stop de Fetchmail service met het commando:

/etc/init.d/fetchmail stop

Edit de file ‘/etc/default/fetchmail’ en verander de waarde voor ‘START_DAEMON’ in ‘no’. De Fetchmail service zal nu voortaan niet meer als daemon gebruikt worden.

We gaan nu instellen dat per gebruiker de betreffende emails worden opgehaald. Nog steeds ingelogd als ‘melissa’ creëer je de file ‘/home/melissa/.fetchmailrc’ en stel je hier de te gebruiken email accounts in.

Voorbeeld:

set syslog # log through syslog facility
set postmaster melissa

set no bouncemail # avoid loss on 4xx errors

#########################################################
# Hosts to pool #
#########################################################
# Set antispam to -1, since it is far safer to use that together
# no bouncemail
defaults:
timeout 300
antispam -1
batchlimit 100

poll mail.matthijsseninfo.nl proto POP3 user "melissa" password "<password>" fetchall
mda "/usr/bin/procmail -d %T"

poll pop.gmail.com with proto POP3 user "Melissa.Matthijssen@gmail.com" password "<password>" fetchall options ssl
mda "/usr/bin/procmail -d %T"

Nu gaan we Procmail instellen om de email op de juiste file-lokatie af te leveren. Controleer eerst of je geen globale email lokatie hebt geconfigueerd in de file ‘/etc/procmailrc’. Hierbij mag je niks geconfigureerd hebben staan voor MAILDIR en DEFAULT.

Creëer de file ‘/home/melissa/.procmailrc’ met de volgende inhoud:

# All folders (spam, log, procmailbackup) are in $MAILDIR/mail
MAILDIR = /home/melissa/mail/
DEFAULT = /home/melissa/mail/

We zijn nu bijna klaar. We moeten er alleen nog voor zorgen dat de email voortaan automatisch wordt opgehaald. Zorg de file-permissions van de file ‘/home/melissa/.fetchmailrc’ op 600 staan:

chmod 600 /home/melissa/.fetchmailrc

Creëer een cron-job die het commando ‘fetchmail’ periodiek aanroept voor de betreffende gebruiker.

crontab -e

Gebruik hiervoor de volgende regel om elke 3 minuten te controleren:

*/3 * * * * /usr/bin/fetchmail &> /dev/null

Je hebt nu alles ingesteld en je kunt ‘melissa’ instellen als gebruiker voor je IMAP server in je email clients.