On 2020-03-26 12:03, Stefano Antonelli wrote:
On 2020-03-26 03:37, Aki Tuomi wrote:
You could try something simple like just
for n in *; do cat $n | doveadm save -u targetuser; done
Thank you. This "works" in that it renames the files for me. However,
- the filename timestamps are all similar (ie. time of import)
- the emails showed up in new rather than cur
- the emails are unseen.
As mentioned previously, I don't have access to the mail server any
more. I did manage to bring up a virtual machine and installed the
server software on to it and restored the mail to the virtual machine.
However, no imap backup tools (not even doveadm) could complete
operation without failing. In all cases, none of the tools preserved
the timestamp of the email anyway (not even with mbsync using
CopyArrivalDate).
So I went back to working with the raw .imap files. I could not coerce doveadm into listing the uids in any sane order. I thought this might have something to do with the filename timestamp or mtime on the file itself. So I set out to decode the .imap filenames and convert them to proper maildir filenames. Of course, this was only possible with a server I could query. Then I wrote a script that renamed files as best as I could from the old mail server:
2012122513472903CA-000001020000000141996DEF.imap
to maildir files:
1356472049.M000000P12345.icewarp,S=10354,W=10354:2,S
I also set the m-time and a-time after copying into the maildir directory. Followed by:
chown -R mail:mail /path/to/maildir/user doveadm force-resync -u user@domain INBOX
At first this didn't work. dovecot-uidlist was not correct. So then I removed all the dovecot files and did a resync again:
rm /path/to/maildir/user/dovecot* doveadm force-resync -u user@domain INBOX
And this gave me the dovecot-uidlist I was looking for and mails displayed properly at the imap client.
I've attached my script in case it's helpful to anyone in a similar situation. It took quite a bit of effort to get this right, highly depends on the format of the original mailstore, and I've only tested this on one smaller mailbox (<400 messages). And I wasn't concerned with any client having to download everything again since this was a fresh import.
In any case, it worked for me.
Thanks, Stef