Skip to content

Tags

Tags give the ability to mark specific points in history as being important
This project is mirrored from https://github.com/emersion/go-imap. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
  • v2.0.0-alpha.8
    058b4292 · Add SeqSet and UIDSet ·
    go-imap v2.0.0-alpha.8
    
    This release introduces a new UID type, as well as separate types for
    message sequence number sets and UID sets. SeqSet now contains only
    sequence numbers, and the new UIDSet type contains only UIDs. The NumSet
    type is used when both SeqSet and UIDSet are accepted. Client.UID*
    methods have been removed (the non-UID variant now accepts UIDSet).
    
    Alexander Kazantsev (1):
          imapmemserver: fix usage NumUnseen instead of NumDeleted
    
    Diana F (3):
          add rfc 8457 mailbox attr
          imapclient: fix closing unread Fetch body
          imapclient: Close returned err.NetClosed after Logout
    
    Matthieu Rakotojaona (1):
          imapclient: allow NIL Content-Transfer-Encoding in body structure
    
    Simon Ser (26):
          imap: add examples for SearchCriteria.Not and Or
          imapclient: accept missing message and text fields in body structure
          imapclient: move examples to example_test.go
          imapclient: add basic login test
          imapclient: add basic idle test
          imapclient: fix panic on nil options in Fetch
          imapclient: make encoding errors fatal
          imapclient: add invalid fetch command test
          Introduce a UID type
          imapwire: add dedicated UID functions
          Rename SeqSet to NumSet
          Rename Seq to NumRange
          Move NumSet parsing to imapwire
          ci: add gofmt check
          imapclient: fix routing for FETCH responses to STORE commands
          imapclient: add STORE test
          imapclient: fix net.ErrClosed decoder check
          Upgrade dependencies
          imapclient: add Fetch example which parses the body
          imap: add a few examples to FetchItemBodySection docs
          imapclient: fix typo in example name
          imapclient: remove outdated TODO
          imapclient: ensure SEARCH ALL set is not dynamic
          imapclient: ensure COPYUID set is not dynamic
          imapclient: add basic Append test
          Add SeqSet and UIDSet
    
  • v2.0.0-alpha.7
    go-imap v2.0.0-alpha.7
    
    Simon Ser (13):
          imapclient: add CONDSTORE
          imapserver: add UNAUTHENTICATE support
          imapclient: drop special case for BYE response-data handling
          imapclient: fix stalled commands on readResponseTagged() error
          imapclient: relax text requirements for resp-cond-bye
          imapclient: relax text requirements for resp-cond-state
          imapwire: accept trailing space before CRLF
          imapclient: fix missing import in charset decoding docs
          imapclient: simplify charset instructions
          imapclient: drop unused Client.unregisterContReq
          imap: add AuthCap
          imapclient: add AUTHENTICATE example
          imapclient: restart IDLE automatically
    
    Tim Culverhouse (1):
          imapclient: add SPECIAL-USE LIST option support
    
  • v2.0.0-alpha.6
    go-imap v2.0.0-alpha.6
    
    Andrew Regner (1):
          imapclient: fix FetchItems to end encoded list
    
  • v2.0.0-alpha.5
    go-imap v2.0.0-alpha.5
    
    The main change is around FETCH: the items to fetch are no longer passed
    as a list, instead FetchOptions struct fields are used.
    
    Simon Ser (6):
          go fmt
          imapclient: add IDLE example
          imapclient: add docs about charset decoding
          imapserver: pass extended bool to writeBodyStructure
          imap: turn FetchItem into FetchOptions
          imap: improve docs for various FETCH-related structs
    
  • v2.0.0-alpha.4
    99f28195 · Add support for SEARCHRES ·
    go-imap v2.0.0-alpha.4
    
    Simon Ser (13):
          cmd/imapmemserver: fix -tls-cert/key flags
          imap: switch Envelope.Date to time.Time
          imap: convert SearchReturnOption into struct fields
          imap: replace StatusItem with StatusOptions
          imapserver: add LITERAL+
          imapwire: remove misleading UTF8=ACCEPT reference
          imapclient: add LITERAL+
          imapclient: fix deadlock during STARTTLS
          imap: allow multiple SeqSets per SearchCriteria
          imap: add SearchCriteria.And
          imapserver: simplify readSearchKeyWithAtom
          imapclient: remove SeqNum special case when encoding SEARCH
          Add support for SEARCHRES
    
  • v2.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
    
  • v2.0.0-alpha.2
    568ea8c9 · Add GitHub issue template ·
    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
    
  • v2.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
    
  • v1.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
    
  • v1.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: go-message@0.15.0, x/text@0.3.7.
    
    fox.cpp (2):
          Merge support for the UNSELECT extension
          Merge support for APPENDLIMIT extension
    
  • v1.1.0
    6159a018 · Update dependencies ·
    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
    
  • v1.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
    
  • v1.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
    
  • v1.0.4
    go-imap v1.0.4
    
    Robert G. Jakabosky (2):
          sevrer: add Login test for already authenticated
          server: add tests for StartTLS errors
    
    Simon Ser (2):
          readme: add link to go-imap-metadata
          all: go fmt
    
    Xiaobin Huang (1):
          fix rfc822XXX issue (#332)
    
  • v1.0.3
    8078e02b · Update dependencies ·
    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
    
  • v1.0.2
    go-imap v1.0.2
    
    Mostly server and backendutils fixes.
    
    Robert G. Jakabosky (7):
          Fix issue with backendutils.UpdateFlags().
          Server - allow single flag in STORE command.
          Server - Fix deadlocks when client connection closes early.
          Add tests for Recent flag.
          Backendutils - Improve tests for UpdateFlags.
          Test FETCH with no mailbox selected.
          Test NOOP on selected mailbox.
    
    Simon Ser (1):
          Update dependencies
    
    fox.cpp (2):
          Provide a useful error message if written literal is smaller than expected
          client: Close the connection on mismatched literal length
    
  • v1.0.1
    go-imap v1.0.1
    
    Daniel Kucera (2):
          use correct header for content encoding
          fix detection of multipart in different case
    
    Daniel Lublin (1):
          Add basic comment stripping for date-time
    
    David Rauschenbach (1):
          Fix search larger and smaller edge case
    
    Fernando Ramos (1):
          Make SEARCH charset a RawString
    
    Martin Ashby (1):
          Don't send CAPABILITY statement unsolicited after starting TLS connections
    
    Simon Ser (1):
          client: add example for Client.Append
    
    fox.cpp (1):
          commands: Properly handle EOF in Authenticate.Handle
    
  • v1.0.0
    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
    
  • v1.0.0-rc.2
    go-imap v1.0.0-rc.2
    
    Simon Ser (1):
          readme: drop go report card badge
    
    fox.cpp (5):
          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
    
  • v1.0.0-rc.1
    go-imap v1.0.0-rc.1
    
    Kyriakos Kyriakou (1):
          Make MIMEType and MIMESubType string comparisons case insensitive (#237)
    
    Simon Ser (1):
          client: cancel pending literal writes after status response
    
    emersion (1):
          client: add test case for failed APPEND
    
    fox.cpp (5):
          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)