Releases: emersion/go-imap
Releases · emersion/go-imap
2.0.0-alpha.3
go-imap v2.0.0-alpha.3 Simon Ser (42): cmd/imapmemserver: new command cmd/imapmemserver: fix -password flag imapmemserver: add per-mailbox UIDVALIDITY imapmemserver: bump UIDVALIDITY when a mailbox is re-created imapmemserver: return NONEXISTENT/ALREADYEXISTS response codes imapmemserver: return TRYCREATE for COPY and MOVE readme: add usage and note about v1 imapserver: add Server.ListenAndServe{,TLS} imapclient: make text after resp-text-code optional imapwire: use unicode.MaxASCII imapclient: use CHARSET for SEARCH when necessary imapclient: refuse PREAUTH when using STARTTLS imapclient: fix typo imapserver: error greeting can only be BYE imapserver: add support for custom SASL mechanisms imapserver: rename variable in handleAuthenticate imap: add placeholder for Error with no text imap: include response code in Error message imapclient: ignore literal8 marker for FETCH BINARY[] imapserver: send literal8 marker for FETCH BINARY[] imapwire: add Encoder.SeqSet imap: add SelectOptions imap: add CreateOptions imapserver: add missing CreateOptions argument imapclient: don't encode UTF-8 quoted strings with UTF8=ACCEPT imap: add FetchOptions imap: add StoreOptions imapclient: add support for UNAUTHENTICATE Add support for CREATE-SPECIAL-USE imapserver: allow CREATE-SPECIAL-USE to be advertised by the backend imapserver: allow CREATE-SPECIAL-USE to be advertised with IMAP4rev2 imapclient: simplify UIDNEXT/UIDVALIDITY parsing imapclient: request capabilities if needed internal: rename ReadFlag{,List} to ExpectFlag{,List} imapwire: add Encoder.MailboxAttr internal: add ExpectMailboxAttr{,List} internal: canonicalize well-known flags and mailbox attrs imapserver: add support for PREAUTH imapclient: add a few more examples imapclient: add streaming LIST example imapclient: add pipelining example imapserver: forbid unknown commands before authentication mariwilliam (1): imapclient: fix deadlock in commandEncoder.Literal
2.0.0-alpha.2
go-imap v2.0.0-alpha.2 This new alpha adds the server side of the library. It also includes some bugfixes for the client. Simon Ser (160): readme: add badge for docs imap, imapclient: improve top-level package docs imapclient: move over handlers to separate files imapclient: warn about command pipelining imapclient: document goroutine safety imapclient: add support for ESEARCH imapwire: add Encoder.Text imapclient: add support for QUOTA imap: add CapSet.AuthMechanisms imapclient: add SORT imapclient: add THREAD imapwire: accept lone LF imap: add missing ThreadAlgorithm imapserver: add basic server skeleton imapserver: recover from panics in connection goroutine imapserver: add basic CAPABILITY handler imap: move over imapclient.State imapserver: use imap.ConnState imapserver: add basic IDLE support imapserver: use a fresh decoder for each command imapwire: add DecoderExpectError imapserver: send back syntax errors to clients imapserver: introduce Session imapserver: send BAD when IDLE isn't stopped correctly imapserver: add LOGIN imapserver: add ErrAuthFailed imapserver: add AUTHENTICATE imapserver: check connection state in IDLE handler imapwire: make Decoder.ExpectMailbox take a pointer imap: move over STATUS types from imapclient imapserver: add STATUS imap: move over imapclient.List{Options,Data} imapserver: introduce newClientBugError imapserver: add LIST imap: move over imapclient.SelectData imapserver: add SELECT and EXAMINE imapserver: add CLOSE and UNSELECT internal: move over imapclient.readFlag and readFlagList imapwire: add Decoder.ExpectLiteralReader imap: move over imapclient.LiteralReader imap: move over imapclient.Append{Options,Data} internal: move over imapclient.{dateTimeLayout,readDateTime} imapserver: add APPEND imap: move over imapclient.FetchItem imapserver: add basic FETCH support imap: move over imapclient.Envelope imapserver: add FetchResponseWriter.WriteEnvelope imapwire: introduce ConnSide imapserver: add FetchResponseWriter.WriteBodySection imapserver: add FetchResponseWriter.WriteBinarySection{,Size} imapserver: add UID FETCH imapserver: add EXPUNGE imapwire: use escape sequence for special chars in Decoder errors imapserver: use default logger when Options.Logger is nil imapclient: fix deadlock in Authenticate imapserver: add STARTTLS imapserver: add ListWriter imapserver: add Server.InsecureAuth imapserver: add COPY and MOVE imap: move over imapclient.StoreFlags imapserver: add STORE imapclient, imapserver: fix decoding BODY[] without section-part imap: move over imapclient.Search{Options,Criteria} internal: move over imapclient.searchDateLayout imap: move over imapclient.SearchData imap: add FlagRecent internal: add ExpectDate iampserver: add SEARCH imap: move over imapclient.BodyStructure imapserver: add FetchResponseWriter.WriteBodyStructure imapserver: sort Session methods by connection state imapserver: move CAPABILITY, IDLE and LOGIN handlers to separate files imapserver: add ENABLE imapserver: add CREATE, DELETE and RENAME imapserver: add SUBSCRIBE and UNSUBSCRIBE imap: move over imapclient.NamespaceData imapserver: add NAMESPACE imapwire: server-sent literals are never synchronizing imapserver: send continuation requests for all literals imapclient: encode strings as literals if necessary imapserver: allow clients to ENABLE IMAP4rev2 imapserver: protect conn.enabled with a mutex imapserver: add timeouts imapclient: rename respWriteTimeout to cmdWriteTimeout imapserver: send CAPABILITY code in greeting imapserver: send APPENDUID imap: move over imapclient.CopyData imapserver: send back OK [COPYUID] in response to COPY commands imapserver: expose connection type imapserver: add Conn.NetConn imapserver: lock Conn.encMutex during STARTTLS imapserver: keep Conn.encMutex locked until OK during AUTHENTICATE imapserver: don't keep Conn.encMutex locked during IDLE imapserver: add ExpungeWriter imapserver: add MatchList imapserver: validate flags in responses imapserver: move server options to separate struct imapserver: add more docs imapclient: note that sensitive info is written to Options.DebugWriter imapserver: add Options.DebugWriter imapserver: send COPYUID and EXPUNGE in response to MOVE imapserver: add Conn.Bye imapserver: add Session.Poll imapserver: handle implicit unselect in SELECT imapserver: add MailboxTracker imapserver: add Session.Idle imapserver: add SessionTracker.Idle imapserver: ignore EOF while idling imapserver: return IMAP4rev1 SEARCH response if ESEARCH isn't used imapserver: add stub for STATUS RECENT imapclient, imapserver: fix BODY[] parsing with specifier imap: move obsolete FlagRecent to internal imapserver: fix FETCH keywords comparisons imapserver: decode obsolete IMAP4rev1 FETCH data items imapserver: expand FETCH macros imapserver: accept nil envelope in FetchWriter.WriteEnvelope imapserver: decode STORE without flag list imapserver: add obsolete CHECK imapserver: announce IMAP4rev1 capabilities imapserver: ignore net.ErrClosed when reading command imapserver: add Server.Close imapwire: add Encoder.Quoted imapwire: reject atoms in Decoder.ExpectNStringReader imapserver: add obsolete LSUB imapclient, imapserver: use case-insensitive comparisons imapwire: make INBOX case-insensitive in Decoder.ExpectMailbox fixup! imapclient, imapserver: use case-insensitive comparisons imapwire: add Decoder.ExpectSeqSet imapserver: properly discard half-consumed command lines on error imapserver: send OK [READ-WRITE/READ-ONLY] on SELECT/EXAMINE imapserver: bail on sequence number OOB in SessionTracker imapserver: ensure envelope UTF-8 is encoded imapserver: make LIST select options case-insensitive imapserver: return error on unknown LIST select option imapserver: implement multiple patterns for LIST-EXTENDED imapserver: return ESEARCH response on empty return option list imapserver: do not write empty ALL/MIN/MAX ESEARCH response fields imapserver: write obsolete RECENT response after SELECT/EXAMINE imapserver: default Sender and Reply-To to From imap: drop BodyStructureSinglePartExt.MD5 imapserver: fix nil deref when writing text/* body structure imapserver, imapclient: fix handling of lowercase section specifier imapserver: fix decoding of partial body section imapserver: fix FETCH BODY[] and BINARY[] items not returned imapclient, imapserver: fix decoding of body section specifier imapserver: return back obsolete FETCH items to client imapserver: add UpdateWriter.WriteMessageFlags imapserver: add MailboxTracker.QueueMessageFlags imapserver: add UID to FETCH FLAGS unilateral updates imapserver: fix expunged messages in SessionTracker.EncodeSeqNum imapserver: allow specifying source in MailboxTracker.QueueMessageFlags imapserver: decode modified UTF-7 in LIST patterns imapserver: unwrap imap.Error in Conn.readCommand imapserver/imapmemserver: new package imapserver: make capabilities customizable imapserver: send CAPABILITY response code after authentication imapserver: make Session.Namespace and Move optional imapmemserver: remove unused return value in message.store imapserver: add FLAGS unilateral update Add GitHub issue template
2.0.0-alpha.1
go-imap v2.0.0-alpha.1 Simon Ser (140): Initial commit imapwire: add IMAP encoder and decoder imapclient: add IMAP client imapwire: add support for encoding literals imapclient: add support for continuation requests imapclient: add APPEND imapwire: add Decoder.Skip imapwire: include last unread byte in error messages imapclient: add SELECT imapwire: add Encoder.{Special,Number,Number64} imapwire: add Decoder.Number64 imapwire: add support for decoding literals imapclient: add FETCH imapclient: add STARTTLS imapclient: add IDLE imapclient: make beginCommand take the command as input imapclient: add commandEncoder imapclient: track continuation requests per-command imapclient: use per-command encoder imapwire: make literals cancellable imapwire: add some docs imapclient: move Client.read up imapclient: return data from SELECT command imapclient: add Options imapclient: add basic support for unilateral data imapclient: fix races in StartTLS and Idle imapwire: don't panic on number64 overflow imapwire: add number decoding methods imapclient: add STATUS imapwire: add Encoder.List imapwire: add Decoder.ExpectList imapclient: simplify FetchCommand.Next imapclient: fix FETCH replies dropped by FetchCommand.Next imapwire: add Decoder.Quoted imapclient: add LIST imapclient: add ListCommand.Collect imapclient: add FetchItem imapclient: decode FETCH FLAGS imapclient: add FetchCommand.Collect and FetchMessageData.Collect imapclient: add FetchMessageData.SeqNum imapwire: accept literals in Decoder.ExpectAString imapclient: handle nil literal in FETCH BODY[] imapclient: add FETCH ENVELOPE imap: add toplevel package doc comment imapclient: add FETCH INTERNALDATE imapclient: split FetchMessageBuffer item handling in function imapclient: add FETCH RFC822.SIZE imapclient: add FETCH UID imapclient: add FETCH BODYSTRUCTURE imapclient: add BodyStructureSinglePart.Filename imapclient: add BodyStructure.Walk imapclient: add BodyStructure.Disposition imap: add SeqSet imapclient: take SeqSet as input in Client.Fetch imapwire: make SP optional before parenthesized list imapclient: add FetchItemDataBodyStructure.IsExtended imap: move over MailboxAttr imap: add Flag imapclient: add Options.WordDecoder internal/utf7: new package imapwire: encode/decode UTF-7 in mailbox names imapclient: use imapwire.Decoder.ExpectMailbox imapclient: turn FetchItem into an interface imapclient: decode FETCH BINARY.SIZE[] imapclient: handle FETCH BODY[] and BINARY[] imapclient: collect BINARY.SIZE[] in FetchMessageBuffer imapclient: add UIDFetch imapclient: add DialStartTLS imapclient: populate tls.Config.NextProtos imapclient: split into per-command files imapclient: add EXPUNGE imapclient: add STORE imapclient: add MOVE imapclient: add COPY imapclient: make text optional when decoding continuation request imapwire: add ContinuationRequest imapclient: add AUTHENTICATE imapclient: complete commands when decoder goroutine exits imapclient: recover from panics in decoder goroutine imapclient: handle initial greeting imapclient: add EXAMINE imap: add StatusResponse and Error imapclient: add options to Client.Append imap: add SeqSet.Nums imapclient: add SEARCH imapclient: add CREATE and DELETE imapclient: add RENAME imapclient: add SUBSCRIBE and UNSUBSCRIBE imapclient: add UNSELECT imapclient: add CLOSE imapclient: add UID EXPUNGE imapclient: decode PERMANENTFLAGS, UIDNEXT and UIDVALIDITY imap: add FlagWildcard imapclient: add State imapclient: drop LogoutCommand imapclient: always use string for LIST pattern imapclient: add extended LIST imapclient: attach STATUS responses to ListData imap: add Cap and CapSet imapclient: add ENABLE imapclient: add Client.Caps imapclient: replace FetchItemDataSection with two variants imapclient: drop FetchItemData.FetchItem imapwire: use pointer args for Number/Number64 imapclient: decode and expose APPENDUID imapclient: parse and expose COPYUID in reply to COPY command imapclient: handle ENABLED response imapclient: handle COPYUID response code for MOVE commands imapclient: add SelectData.List imapclient: document optional SelectData fields in RFC 2060 imapclient: validate flags before encoding them imapclient: document requirements for IMAP4rev2 imapclient: switch unilateral data handler to a struct imapclient: add Client.{Mailbox,NumMessages} fixup! imapclient: switch unilateral data handler to a struct imapclient: print stack trace on panic in decoder goroutine imapclient: add SelectedMailbox imapclient: propagate decoder goroutine errors imapclient: fix deadlock when server sends unilateral FETCH imapclient: set read timeout imapclient: set write timeout imapclient: add support for LITERAL- imapclient: add flags to UnilateralDataMailbox imapclient: add UnilateralDataHandler.Fetch imap: STATUS=SIZE is part of IMAP4rev2 imapclient: add support for APPENDLIMIT imapclient: fix command priority in STATUS response handler imapclient: match mailbox when handling STATUS response imapclient: restrict generic type in findPendingCmdByType imapclient: improve FETCH response routing imapclient: fix command priority in LIST response handler imapclient: implement fallback for MOVE imapclient: add support for NAMESPACE imapclient: add example ci: add .build.yml imapwire: rename Decoder.Skip to DiscardUntilByte imapwire: add Decoder.DiscardValue readme: add CI badge imapclient: add METADATA imapclient: drop ALL from criteria in SEARCH command
1.2.1
go-imap v1.2.1 Leander Beernaert (1): Fix FETCH command with ALL, FAST and FULL macro as fetch items Mikhail Faraponov (2): Update mailbox.go Use EqualFold to compare case insensitively Simon Ser (1): readme: narrow CI badge to master branch Stephen Benjamin (1): Add link to notmuch backend fox.cpp (1): Add IDLE to capabilities list
1.2.0
go-imap v1.2.0 This release merges support for a few IMAP extensions in go-imap, instead of relying on external repositories. René 'Necoro' Neumann (1): Ignore unilateral updates from the server in FETCH Simon Ser (10): github: switch to Libera Chat for questions Merge client support for ENABLE extension Add missing ENABLE command and response Merge support for MOVE extension Merge support for IDLE extension Ignore IDLE in Server.Enable Add missing IDLE command and response readme: mark IDLE as built-in readme: sort built-in ext list github: redirect to Libera webchat for questions Zhang Huangbin (1): Update dependent packages: [email protected], x/[email protected]. fox.cpp (2): Merge support for the UNSELECT extension Merge support for APPENDLIMIT extension
1.1.0
go-imap v1.1.0 This release adds built-in support for SPECIAL-USE, CHILDREN and IMPORTANT. Moving forward more extensions will be merged back into go-imap. A handful of bugfixes are also included. Adam Chalkley (1): Fix small typo in example's doc comment René 'Necoro' Neumann (1): Update dependencies Ryan Westlund (1): Fix #421: Correct docstring on client.Append Simon Ser (8): Add the IMPORTANT extension readme: remove pointless `go get` command readme: switch GoDoc links to godocs.io ci: drop codecov readme: remove codecov badge Add issue template github: add issue template front-matter github: add about field to issue template daichitakahashi (1): utf7: reset ascii boolean after decode while destination is short. fox.cpp (4): Add section about "built-in" extensions to README Merge support for SPECIAL-USE extension Add constant with builtin extensions for tests Merge support for CHILDREN extension liangping (1): Message chan not closed
1.0.6
go-imap v1.0.6 James (2): Support NIL hierarchy delimiter server: error when selecting should unselect Michal Horejsek (1): utf7: reset ascii boolean at EOF while destination is short Patrick Hahn (1): remove "should not be called directly" comments and replaced them with links to the GitHub wiki pages Simon Ser (1): readme: add NAMESPACE extension fox.cpp (3): Write NIL for empty ENVELOPE fields backendutil: Improve Match function client: Drop syscall.ECONNRESET hack from Client.readOnce proletarius101 (1): utf7: fix package doc comment sqwishy (1): imap: lower some fields + content disposition keys y0ast (2): return empty reader instead of nil when BODY is found but server returns nil add support for empty groups in address lists
1.0.5
go-imap v1.0.5 Kiyan Yazdani (1): Fix empty envelope address fields Max Mazurov (1): backendutil: Implement message size and lines counting Michal Horejsek (1): Add MailboxInfoUpdate Simon Ser (2): Fix BodyStructure fields documented as encoded readme: update CI badge to only show status for commits fox.cpp (3): Move ErrStatusResp to the root package Replace empty string result in ErrStatusResp.Error server: Return proper BAD response for cancelled SASL negotiation
1.0.4
1.0.3
go-imap v1.0.3 Adirelle (3): Fix SearchCriteria formatting of keywords flags. Test STORE with keyword flags. Test APPEND with keyword flag. Arnold Bechtoldt (1): Search for ALL messages by default (#330) Simon Ser (8): Introduce BodyStructure.Filename Improve BodyStructure docs Add Address.Address helper Simplify BodyStructure.Filename Introduce BodyStructure.Walk Add TryCreateFlag client: fix channels not closed on error Update dependencies