Archiving Emails from an Exim Based Email Server
For integrating MailStore into an Exim based email infrastructure, it is recommended to let Exim put all emails into an archiving mailbox additionally to the default user's mailbox. It is necessary to create a new Exim router and transport for that purpose.
Router
The new Exim router should look like this:
mailstore_router: no_expn no_verify transport = mailstore_transport driver = accept unseen
It is mandatory to put that router in a place before any mailbox delivery is done. Making it the the first router in you Exim's router section is the most secure way if you do not want to miss a mail in your archive. Depending on your anti-spam or anti-virus protection it may also be suitable to put it right after the routers handling those actions.
Transport
Now that the router is defined and calls a transport called mailstore_transport, this one has to be set up also. A new transport can be put anywhere in Exim's transports section.
The following code show a transport configuration, which makes Exim store all emails in Maildir format at /var/mailstore/Maildir. If you want to store the emails elsewhere change the configuration according Exim's manual.
mailstore_transport: driver = appendfile delivery_date_add envelope_to_add return_path_add maildir_format = true create_directory = true directory = /var/mailstore/Maildir
Last but not least you need a system user who's IMAP home directory points to /var/mailstore/Maildir. In most cases, like in Dovecot IMAP, it is enough to have a system user who's $HOME points to /var/mailstore.