v2: client status
- Dominant language
- Go
- Stars
- 2.3k
- Forks
- 358
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 1
Description
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 IMAP4rev2` on servers which also support IMAP4rev1
- [x] ~~Consider turning `SearchCriteria.Not` into 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](https://www.rfc-editor.org/rfc/rfc4466))
- [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.StartTLS` in 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](https://www.rfc-editor.org/rfc/rfc9051.html#section-11.3))
- [x] Consider re-using the same `*FetchBodySection` pointers in the returned map, or make it easier to match a `*FetchBodySection` from a command
- [ ] Drop `Command` because 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
Contributor guide
Research direction
Start by reviewing the continuation of pull request #490 and the unchecked items in this issue, especially the IMAP4rev2 ENABLE behavior and connection-state response handling. Read RFC 9051 section 11.3 first; no source files or tests are named, and completion would require narrowing the checklist to a specific, testable change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100