go-imap v1.0.0 This is the first stable release of go-imap. For a list of API changes since v0.9, see: https://github.com/emersion/go-imap/issues/152 Carsten Seeger (1): added Clieint.Terminate() CodeLingo Bot (1): Fix function comments based on best practices from Effective Go David Crawshaw (3): backendutil: skip part header when using an index backendutil: read body section parts left-to-right imap: quote parameter values Kyriakos Kyriakou (1): Make MIMEType and MIMESubType string comparisons case insensitive (#237) LE Manh Cuong (2): add test for login state fix wrong login state condition Martin Kirilov (2): Always close ch chan *imap.Message upon fetch test fetch closes output channel when state is not SelectedState Pablo SEMINARIO (1): Add an example for Client.Search() usage Robert G. Jakabosky (10): Fix client data race. Fix data race with server continuation requests Fix data races in Upgrade and SetDebug. Fix debug writer data race. Client - Detect 'connection reset by peer' errors. Use WaitGroups instead of channels in Waiter. Cleanup greeting handling code. Fix data race in `client.(*Client).Authenticate()` AuthReplyFunc - return `error` Change auth replies from `string` to `[]byte` Simon Ser (10): readme: go-dkim has migrated to go-msgauth ci: migrate to sr.ht client: expose handler replies to third-parties client: add a note about concurrency go fmt client: prepopulate tls.Config.ServerName Update dependencies client: cancel pending literal writes after status response readme: drop go report card badge readme: remove stability badge emersion (50): imap: rename NewSeqSet to ParseSeqSet imap: rename NewBodySectionName to ParseBodySectionName, fixes #103 client: do not set channels to nil client: make State and Mailbox getters client: refactor basic tests client: refactor tests in any conn state client: refactoring tests when state is not authenticated client: refactor tests for authenticated state imap: add ParseString, fixes #127 client: refactor tests for selected state utf7: remove globals go fmt server: fix a data race in tests client: change DialWithDialer{,TLS} doc wording, fixes #128 imap: Mime -> MIME, updates #102 imap: Md5 -> MD5 server: Sasl -> SASL client: redesigned response handling imap: rename ToNamedResp to ParseNamedResp Replace various update channels with one unique channel Block when sending to Client.Updates Recommend to use a separate goroutine when receiving from Client.Updates Add one type per update Update Client.Updates docs server: close sending goroutine, fixes #139 Add PartSpecifier type imap: add FetchItem and StoreItem imap: add StatusItem imap: remove private command constants imap: rename imap.StatusRespType constants imap: add StatusRespCode client: spec the ErrorLog to be safe to use from multiple goroutines imap: simplify Conn.Flush client: add Client.SetState for extensions utf7: explicitly set Encoding type to improve docs Fix atoms containing forbidden chars Call Handle and Upgrade with Conn, not *conn Change Message.GetBody to accept a BodySectionName instead of a FetchItem client: add Store example Do not print an error on unhandled response travis: use Go 1.9 backend: improve Update client: more strongly typed server updates readme: remove Gitter chat Add go.mod ci: simplify build, use Go 1.10 readme: remove rant readme: add go-imap-sortthread commands: fix Fetch BODY[0] formatted as a string client: add test case for failed APPEND ferhat elmas (6): all: some simplification all: gofmt read: fix crlf reading client: fix couple of formatting issues in tests travis: make docker based, instead of vm all: fix some lint issues fox.cpp (24): Accept LF as command separator instead of only CRLF Pass basic connection information to backend Handle HEADER.FIELDS in backendutil.FetchBodySection (#240) backendutil: Merge Match* functions (#241) backendutil: Update to go-message 0.10 (#245) Handle "STORE FLAGS seqset flag1 flag2" syntax Change order of defer statements in tests Check literal length Use io.CopyN instead of io.Copy Use less restrictve Dialer interface in DialWithDialer (#249) backendutil: Compare header field names in case-insensitive way Server-side (reader) support for non-synchronizing literals (#258) backendutil: Use textproto directly (#256) Explicit separation for quoted strings and atoms (#261) server: Fix quoted capabilities in post-auth response server: Add per-connection panic handler (#264) Revert "backendutil: Use textproto directly for Match" Client & server support for SASL-IR extension (#262) backendutil: Set Sender and Reply-To to From if empty backendutil: Decode headers in Match before comparsion backendutil: Still try to match if field decoding fails client: Use non-synchronizing literals when length is small (<4096) (#273) backendutil: Handle BODY[1] for non-multipart messages Add go.sum true_one (2): Client Client: done buffer changed to 2