Recovering deleted emails on IMAP server with Thunderbird

Solution 1:

I had a similar problem - through some quirk a bunch of emails disappeared from my IMAP server, but remained in the INBOX and Sent files on the local drive. I was unable to coerce Thunderbird to restore those emails onto the IMAP server directly, so I went with another approach:

  • Create a POP3 account with the same credentials as the IMAP one, but make sure this account is unable to connect - don't enter your password.
  • Shut down Thunderbird, and navigate to /Profile/randomname.default/Mail/hostname_of_your_server/
  • Double-check that this is indeed your freshly created dummy account and not some other valuable, but similarly named POP3 account.
  • Copy over the Inbox file containing the deleted emails, overwriting the one from the dummy account, and delete the inbox.msf file that was also in that dummy account folder.
  • Start Thunderbird - notice you have all your emails back! Both the deleted and the undeleted ones are visible in the dummy POP3 account.
  • Now grap the Thunderbird "Remove duplicates (Alternate)" extension from here: Remove duplicates (Alternate).
  • Using the above extension, set the IMAP Inbox as the "Set original message folder(s) for next duplicate search", and run the "Remove duplicates" on the dummy POP3 Inbox.
  • Move the duplicate messages to Trash.
  • Move the remaining messages from the POP3 Inbox, to the IMAP Inbox. Thunderbird will re-upload all the messages automatically to the IMAP server.

Done!

Solution 2:

IMAP and POP are not the same! POP is a transfer protocol, pulling e-mail from the server to the client. IMAP is a synchronization protocol, keeping e-mail on the server, and usually keeping a local cache version.

IMAP has a two stage delete, though most clients don't separate them. They are: Mark as Deleted, and Purge Deleted. Like I mentioned, most clients do both at the same time.

Once an e-mail is purged from the server it should be flushed from any local caches, permanently deleting the e-mails, upon next synchronization. Changing a cache will not change the server.

Accidents are the reason you take good backups; so you can just restore the e-mails.

Solution 3:

Here's a solution that doesn't require you to create a new pop-account.

It's good if you don't have a lot of mails or whole folders got emptied.

  • First of all: Always do a backup! To do that, just copy your profile located in (Linux) ~/.thunderbird/[random].default somewhere else
  • Navigate to your imap profile located in (Linux) .thunderbird/[random].default/ImapMail/[accountname]
  • Copy the folders, the files without .msf extension, to your local thunderbird folders located in .thunderbird/[random].default/Mail/Local Folders
  • Restart thunderbird and check your local folders.
  • Now you can just drag and drop the mails to your IMAP profile again

We noticed that some mails appeared twice in the new local folders, but just one of them was marked unread. So you can easily filter them.