I can think of two possible solutions to this:
First possibility: You can set a custom mailbox_command
in Postfix. For each email Postfix receives, it will call the mailbox_command
defined in the configuration file and provide the email as plain text on stdin
. That way, you can decide how you want to process each email. You will have to parse the headers of the email yourself though. You can take a look at the Postfix documentation for more of an idea on how to make this work. Additional applications like procmail
can also act as a mailbox_command
and help you with processing the incoming mails.
Second possibility: Use Dovecot to store emails. You don't need to enable the POP/IMAP modules of Dovecot. However, Dovecot comes with the fantastic doveadm
utility which allows you to query mailboxes and read from them. With doveadm
, you can automatically select new emails, emails from last week, read the whole email, just part of it, delete old messages, and so forth. It's a powerful utility, I use it in various scripts to purge old emails or provide learn-as-spam
folders for users. Take a look at the documentation in the wiki.
(Note: I also posted this on Stackoverflow, where the poster asked the same question)