Martin Brennan 2920988b3a
FIX: IMAP sync email update uniqueness across groups and minor improvements (#10332)
Adds a imap_group_id column to IncomingEmail to deal with an issue where we were trying to update emails in the mailbox, calling IncomingEmail.where(imap_sync: true). However UID and UIDVALIDITY could be the same across accounts. So if group A used IMAP details for Gmail account A, and group B used IMAP details for Gmail account B, and both tried to sync changes to an email with UID of 3 (e.g. changing Labels), one account could affect the other. This even applied to Archiving!

Also in this PR:

* Fix error occurring if we do a uid_fetch and no emails are returned
* Allow for creating labels within the target mailbox (previously we would not do this, only use existing labels)
* Improve consistency for log messages
* Add specs for generic IMAP provider (Gmail specs still to come)
* Add custom archiving support for Gmail
* Only use Message-ID for uniqueness of IncomingEmail if it was generated by us
* Various refactors and improvements
2020-08-03 13:10:17 +10:00
..
2020-05-05 13:46:57 +10:00
2020-01-15 11:27:12 +01:00
2020-04-30 16:48:53 +10:00
2020-06-15 10:05:22 +08:00
2019-10-21 12:08:20 +01:00
2020-05-05 13:46:57 +10:00
2019-05-22 17:39:44 +03:00
2020-05-05 13:46:57 +10:00
2020-05-05 13:46:57 +10:00
2020-07-21 15:55:03 +08:00
2020-04-30 16:48:53 +10:00