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.