Feature request: Native IMAP support

I love having my rather large email accounts backed up to, and searchable, in DTP. This feature is a killer feature.

However, in its current form, it’s almost unusable. I’ve tried importing from both the Mail application and Outlook, and in both cases, it is slow to import or update, and crash-prone. I ended up writing software to break apart large folders into lots of smaller ones to prevent it from crashing. That change has turned my folder landscape into a bit of a mess (not to mention it took many hours to get all this to work. The code is here if you’re interested, though it’s not for the faint-of-heart: https://github.com/ebowman/imap-filer).

What would seem like a vastly preferable implementation, would be for DTP to just use IMAP to talk directly to the email server. The creators of the IMAP proposal designed it for exactly this use case: it supports incremental updates to a caching client, which DTP is. There is no need to be able to send emails as well through DTP, I get that it’s not an email client, but this would be a vastly preferable implementation for saving emails to DT3. I suspect it would also allow getting rid of some code in DTP that has never really worked that well anyhow.


  • Eric
1 Like

Please choose Help > Report Bug while pressing the Alt modifier key and send the result to cgrunenberg - at - devon-technologies.com so that we can have a look at the (crash) logs. Thanks!

Importing from Apple Mail should be a lot faster if the plugin is installed and in Mail’s preferences enabled.

for DTP to just use IMAP to talk directly to the email server.

This could also have the side-effect of importing all emails by default. That kind of decision is contrary to the user-controlled decisions we advocate in operating our apps.

If it were implemented that way, yes, but the UI could work very similar to how it works now.

I would really like to see that, too.

Because of all the mail problems that appeared with Catalina (lost mail bodies), I’ve now moved over all my mails from Apple Mail to DTPO. Actually, I’ve come back to DTPO, and upgraded to the latest and greatest, only because of this. After a painfully slow import process that took about a month, I’ve now about half a million emails in DTPO.

I’ve scrapped Mail.app usage altogether. I’m using Outlook as email client, and I’ve a local IMAP server (using dovecot in a docker container) where I push all my mails from Outlook into. That’s very fast, and I’d like to now have a way to have DTPO pull those mails out of there automatically.

I’m setting up mail rules in DTPO for automated filing based on the content - similar to what Mail Act On from InDev can do. So in an ideal world, I’d just push mails over to my local IMAP server, and DTPO would automatically pick them up from there, apply rules, and file them away without any user intervention.

And honestly, an IMAP server is very easy to implement in code. As @ebowman said, there’s no point in using DTPO to send mails (but, actually, maybe there’s such a use case if you want to re-work on some mail that was sent already).

So in an ideal world ™, I’d not have my dovecot server sitting in my docker container, but I’d have Outlook - or any other email client for that matter) subscribe to an IMAP server that DTPO implements. The moment I push mails there I can then have DTPO run a whole suite of rules on them. In Outlook, I’d just hit the “Archive” button (sort of), and then all the rest would be automatic.

Please do rethink your strategy there. Like Backup, Filing should be as automatic as possible.


Here is another thought about that topic: I’ve just finished setting up DT as my long term email storage. Including transferring my mail rules from Mail ActOn to DT rules, and running them by an apple script one after the other.

What’s missing is an automated import. Ideally from my IMAP server. Not ideally from that IMAP server through Outlook (which is terribly slow). Very much not ideally doing it manually by selecting Import, Outlook, the Archive folder that it sees in my IMAP folder…

I’d like to script that at the beginning of my “Archive Mails” script.

set ruleList to {"Löschen - Müll", "Taggen - Post", "Taggen - Bank", "Archivieren - Autoresponder", "Archivieren - SPAM", "Archivieren - Birthday Reminder", "Archivieren - Bullshit Bingo", "Archivieren - Calendar", "Archivieren - Chats", "Archivieren - Conference Calls", "Archivieren - Newsletter", "Archivieren - 00 - Not To Me"}

tell application id "DNtp"
	show progress indicator "Archiving Mails…" steps (count of ruleList) with cancel button
	repeat with rule in ruleList
		perform smart rule name rule
		step progress indicator rule
	end repeat
	hide progress indicator
end tell

So that script, which I’ve linked into the toolbar, could ideally just import the waiting mails (as per my IMAP server), and then run the archiving rules.

Any ideas?