In een vorige blog heb ik uitgelegd hoe je een IMAP server opzet inclusief het ophalen en verder afleveren van de email. Dit doe je door de combinatie van Dovecot, Fetchmail en Procmail software te gebruiken. Verder heb ik in een andere blog uitgelegd hoe je dit inricht voor meerdere gebruikers.

Ik merkte echter dat nieuw binnengekomen email voor een van mijn gebruikers niet netjes meer afgeleverd werd in de eind emailbox zoals gebruikt door de Dovecot IMAP server. De email kwam wel terecht in de ‘/var/spool/mail/<user>’ file (in mbox formaat), dus Fetchmail (ophalen van email) werkte goed. Procmail (die ik ingesteld heb als Mail Delivery Agent (MDA) leverde deze echter niet verder af in de eind emailbox (elke email aparte file).

In het geval van mijn huidige opzet voor email afhandeling moet je dan gewoon heel systematisch te werk gaan en de volgende checks uitvoeren om dit op te lossen:

  1. Zorg dat tenminste de volgende files beheerd worden door de betreffende <user>:
    • Alle files in: /home/<user>/mail
    • File: /home/<user>/.fetchmailrc
    • File: /home/<user>/.procmailrc

    Dit kun je eenvoudig doen met het commando ‘chown’.
    (voorbeeld: chown -R <user>:<user> /home/<user>/mail)

  • Zorg dat de file-rechten goed staan voor de volgende directory/files:
    • 700 voor directory: /home/<user>
    • 700 voor file: /home/<user>/.fetchmailrc
    • 644 voor file: /home/<user>/.procmailrc

    Dit kun je eenvoudig doen met het commando ‘chmod’.
    (voorbeeld: chmod 644 /home/<user>/.procmailrc)

Nadat ik dit had gedaan moest ik de ‘/var/spool/mail/<user>’ file nog verwerken. Je bestaande ‘/var/spool/mail/<user>’ file kun je eenvoudig alsnog overzetten naar je eind emailbox met het volgende commando:

formail -s procmail -m /home/<user>/.procmailrc < /var/spool/mail/<user>

Na dit alles gedaan te hebben was het probleem opgelost. Alle ontvangen email was nu netjes te vinden in de eind emailbox. Verder wordt nieuwe email ook weer afgeleverd en verwerkt.