go-imap
go-imap copied to clipboard
v2: client status
Continuation of https://github.com/emersion/go-imap/pull/490
- [ ] Consider adding separate types for
FetchItemData{Body,Binary}Section.Section - [x] Add support for
LITERAL+ - [x] ~~Add IMAP4rev1 fallback for IDLE~~ (#543)
- [x] Consider restarting IDLE every 30min (#542)
- [x] Consider setting SEARCH charset for IMAP4rev1
- [ ]
ENABLE IMAP4rev2on servers which also support IMAP4rev1 - [x] ~~Consider turning
SearchCriteria.Notinto a pointer, instead of a slice~~ (#505) - [x] Add support for NAMESPACE
- [x] Add support for ESEARCH
- [x] Add support for SEARCHRES
- [x] Decode
literal8 - [x] Make command methods extensible (see RFC 4466)
- [x] Canonicalize message flags and mailbox attrs
- [x] Parse date in envelope
- [x] Add tests which can run against any IMAP server
- [x] Consider turning lists of items into bool fields (e.g.
SearchOptions.Return) - [x] Drop
Client.StartTLSin favor of a function which constructs an already-secured TLS connection - [ ] Ignore responses that don't make sense given the connection state (section 11.3)
- [x] Consider re-using the same
*FetchBodySectionpointers in the returned map, or make it easier to match a*FetchBodySectionfrom a command - [ ] Drop
Commandbecause it's not extensible - [ ] Some values can be either seq num or UID, how to represent these? Examples:
SearchData.Min/Max,SortCommand.Wait,ThreadData.Chain. Should we add separate UID types for each? - [ ] Some commands may return partial data, should we use pointers? See
StatusData. - [x] Add support for more extensions
- [x] METADATA
- [x] QUOTA (#492)
- [x] SORT
- [x] THREAD