Documentation ¶
Overview ¶
Package imapclient provides an IMAP4 client, primarily for testing the IMAP4 server.
Commands can be sent to the server free-form, but responses are parsed strictly. Behaviour that may not be required by the IMAP4 specification may be expected by this client.
Index ¶
- Constants
- type Address
- type BodyExtension
- type BodyExtension1Part
- type BodyExtensionMpart
- type BodyFields
- type BodyTypeBasic
- type BodyTypeMpart
- type BodyTypeMsg
- type BodyTypeText
- type Capability
- type CodeAppendUID
- type CodeArg
- type CodeCopyUID
- type CodeHighestModSeq
- type CodeList
- type CodeModified
- type CodeOther
- type CodeUint
- type CodeWords
- type Conn
- func (c *Conn) Append(mailbox string, flags []string, received *time.Time, message []byte) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) AuthenticatePlain(username, password string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) AuthenticateSCRAM(method string, h func() hash.Hash, username, password string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Capability() (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Close() error
- func (c *Conn) CloseMailbox() (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Commandf(tag string, format string, args ...any) (rerr error)
- func (c *Conn) Copy(seqSet NumSet, dstMailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Create(mailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Delete(mailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Enable(capabilities ...string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Examine(mailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Expunge() (untagged []Untagged, result Result, rerr error)
- func (c *Conn) List(pattern string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) ListFull(subscribedOnly bool, patterns ...string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Login(username, password string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Logout() (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Move(seqSet NumSet, dstMailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Namespace() (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Noop() (untagged []Untagged, result Result, rerr error)
- func (c *Conn) ReadContinuation() (line string, untagged []Untagged, result Result, rerr error)
- func (c *Conn) ReadUntagged() (untagged Untagged, rerr error)
- func (c *Conn) Readline() (line string, rerr error)
- func (c *Conn) Rename(omailbox, nmailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Response() (untagged []Untagged, result Result, rerr error)
- func (c *Conn) ResponseOK() (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Select(mailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Starttls(config *tls.Config) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Status(mailbox string, attrs ...StatusAttr) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) StoreFlagsAdd(seqset string, silent bool, flags ...string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) StoreFlagsClear(seqset string, silent bool, flags ...string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) StoreFlagsSet(seqset string, silent bool, flags ...string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Subscribe(mailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) TLSConnectionState() *tls.ConnectionState
- func (c *Conn) Transactf(format string, args ...any) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) UIDCopy(uidSet NumSet, dstMailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) UIDExpunge(uidSet NumSet) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) UIDMove(uidSet NumSet, dstMailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Unselect() (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Unsubscribe(mailbox string) (untagged []Untagged, result Result, rerr error)
- func (c *Conn) Write(buf []byte) (n int, rerr error)
- func (c *Conn) WriteSyncLiteral(s string) (untagged []Untagged, rerr error)
- func (c *Conn) Writelinef(format string, args ...any) (rerr error)
- type Envelope
- type Error
- type EsearchDataExt
- type FetchAttr
- type FetchBinary
- type FetchBinarySize
- type FetchBody
- type FetchBodystructure
- type FetchEnvelope
- type FetchFlags
- type FetchInternalDate
- type FetchModSeq
- type FetchRFC822
- type FetchRFC822Header
- type FetchRFC822Size
- type FetchRFC822Text
- type FetchUID
- type MboxListExtendedItem
- type NamespaceDescr
- type NamespaceExtension
- type NumRange
- type NumSet
- type QuotaResource
- type QuotaResourceName
- type RespText
- type Result
- type Status
- type StatusAttr
- type TaggedExtComp
- type TaggedExtVal
- type Untagged
- type UntaggedBye
- type UntaggedCapability
- type UntaggedEnabled
- type UntaggedEsearch
- type UntaggedExists
- type UntaggedExpunge
- type UntaggedFetch
- type UntaggedFlags
- type UntaggedID
- type UntaggedList
- type UntaggedLsub
- type UntaggedNamespace
- type UntaggedPreauth
- type UntaggedQuota
- type UntaggedQuotaroot
- type UntaggedRecent
- type UntaggedResult
- type UntaggedSearch
- type UntaggedSearchModSeq
- type UntaggedStatus
- type UntaggedVanished
Constants ¶
const ( QuotaResourceStorage = "STORAGE" QuotaResourceMesssage = "MESSAGE" QuotaResourceMailbox = "MAILBOX" QuotaResourceAnnotationStorage = "ANNOTATION-STORAGE" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Address ¶
type Address struct {
Name, Adl, Mailbox, Host string
}
Address is an address field in an email message, e.g. To.
type BodyExtension ¶ added in v0.0.12
type BodyExtension struct { String *string Number *int64 More []BodyExtension }
BodyExtension has the additional extension fields for future expansion of extensions.
type BodyExtension1Part ¶ added in v0.0.12
type BodyExtension1Part struct { // ../rfc/9051:6023 ../rfc/3501:4191 ../rfc/9051:6366 ../rfc/3501:4584 MD5 string Disposition string DispositionParams [][2]string Language []string Location string More []BodyExtension }
BodyExtension1Part has the extensible form fields of a BODYSTRUCTURE for non-multiparts.
type BodyExtensionMpart ¶ added in v0.0.12
type BodyExtensionMpart struct { // ../rfc/9051:5986 ../rfc/3501:4161 ../rfc/9051:6371 ../rfc/3501:4599 Params [][2]string Disposition string DispositionParams [][2]string Language []string Location string More []BodyExtension }
BodyExtension1Part has the extensible form fields of a BODYSTRUCTURE for multiparts.
type BodyFields ¶
BodyFields is part of a FETCH BODY[] response.
type BodyTypeBasic ¶
type BodyTypeBasic struct { // ../rfc/9051:6407 MediaType, MediaSubtype string BodyFields BodyFields Ext *BodyExtension1Part }
BodyTypeBasic represents basic information about a part, used in a FETCH response.
type BodyTypeMpart ¶
type BodyTypeMpart struct { // ../rfc/9051:6411 Bodies []any // BodyTypeBasic, BodyTypeMsg, BodyTypeText MediaSubtype string Ext *BodyExtensionMpart }
BodyTypeMpart represents the body structure a multipart message, with subparts and the multipart media subtype. Used in a FETCH response.
type BodyTypeMsg ¶
type BodyTypeMsg struct { // ../rfc/9051:6415 MediaType, MediaSubtype string BodyFields BodyFields Envelope Envelope Bodystructure any // One of the BodyType* Lines int64 Ext *BodyExtension1Part }
BodyTypeMsg represents an email message as a body structure, used in a FETCH response.
type BodyTypeText ¶
type BodyTypeText struct { // ../rfc/9051:6418 MediaType, MediaSubtype string BodyFields BodyFields Lines int64 Ext *BodyExtension1Part }
BodyTypeText represents a text part as a body structure, used in a FETCH response.
type Capability ¶
type Capability string
Capability is a known string for with the ENABLED and CAPABILITY command.
const ( CapIMAP4rev1 Capability = "IMAP4rev1" CapIMAP4rev2 Capability = "IMAP4rev2" CapLoginDisabled Capability = "LOGINDISABLED" CapStarttls Capability = "STARTTLS" CapAuthPlain Capability = "AUTH=PLAIN" CapLiteralPlus Capability = "LITERAL+" CapLiteralMinus Capability = "LITERAL-" CapIdle Capability = "IDLE" CapNamespace Capability = "NAMESPACE" CapBinary Capability = "BINARY" CapUnselect Capability = "UNSELECT" CapUidplus Capability = "UIDPLUS" CapEsearch Capability = "ESEARCH" CapEnable Capability = "ENABLE" CapSave Capability = "SAVE" CapListExtended Capability = "LIST-EXTENDED" CapSpecialUse Capability = "SPECIAL-USE" CapMove Capability = "MOVE" CapUTF8Only Capability = "UTF8=ONLY" CapUTF8Accept Capability = "UTF8=ACCEPT" CapID Capability = "ID" // ../rfc/2971:80 )
type CodeAppendUID ¶
"APPENDUID" response code.
func (CodeAppendUID) CodeString ¶
func (c CodeAppendUID) CodeString() string
type CodeArg ¶
type CodeArg interface {
CodeString() string
}
CodeArg represents a response code with arguments, i.e. the data between [] in the response line.
type CodeCopyUID ¶
"COPYUID" response code.
func (CodeCopyUID) CodeString ¶
func (c CodeCopyUID) CodeString() string
type CodeHighestModSeq ¶ added in v0.0.6
type CodeHighestModSeq int64
For CONDSTORE.
func (CodeHighestModSeq) CodeString ¶ added in v0.0.6
func (c CodeHighestModSeq) CodeString() string
type CodeList ¶
type CodeList struct { Code string Args []string // If nil, no list was present. List can also be empty. }
CodeList is a code with a list with space-separated strings as parameters. E.g. BADCHARSET, PERMANENTFLAGS.
func (CodeList) CodeString ¶
type CodeModified ¶ added in v0.0.6
type CodeModified NumSet
For CONDSTORE.
func (CodeModified) CodeString ¶ added in v0.0.6
func (c CodeModified) CodeString() string
type CodeUint ¶
CodeUint is a code with a uint32 parameter, e.g. UIDNEXT and UIDVALIDITY.
func (CodeUint) CodeString ¶
type CodeWords ¶
CodeWords is a code with space-separated string parameters. E.g. CAPABILITY.
func (CodeWords) CodeString ¶
type Conn ¶
type Conn struct { LastTag string CapAvailable map[Capability]struct{} // Capabilities available at server, from CAPABILITY command or response code. CapEnabled map[Capability]struct{} // Capabilities enabled through ENABLE command. // contains filtered or unexported fields }
Conn is an IMAP connection to a server.
func New ¶
New creates a new client on conn.
If xpanic is true, functions that would return an error instead panic. For parse errors, the resulting stack traces show typically show what was being parsed.
The initial untagged greeting response is read and must be "OK".
func (*Conn) Append ¶
func (c *Conn) Append(mailbox string, flags []string, received *time.Time, message []byte) (untagged []Untagged, result Result, rerr error)
Append adds message to mailbox with flags and optional receive time.
func (*Conn) AuthenticatePlain ¶
func (c *Conn) AuthenticatePlain(username, password string) (untagged []Untagged, result Result, rerr error)
Authenticate with plaintext password using AUTHENTICATE PLAIN.
func (*Conn) AuthenticateSCRAM ¶
func (c *Conn) AuthenticateSCRAM(method string, h func() hash.Hash, username, password string) (untagged []Untagged, result Result, rerr error)
Authenticate with SCRAM-SHA-256(-PLUS) or SCRAM-SHA-1(-PLUS). With SCRAM, the password is not exchanged in plaintext form, but only derived hashes are exchanged by both parties as proof of knowledge of password.
The PLUS variants bind the authentication exchange to the TLS connection, detecting MitM attacks.
func (*Conn) Capability ¶
Capability requests a list of capabilities from the server. They are returned in an UntaggedCapability response. The server also sends capabilities in initial server greeting, in the response code.
func (*Conn) Close ¶
Close closes the connection without writing anything to the server. You may want to call Logout. Closing a connection with a mailbox with deleted message not yet expunged will not expunge those messages.
func (*Conn) CloseMailbox ¶
CloseMailbox closes the currently selected/active mailbox, permanently removing any messages marked with \Deleted.
func (*Conn) Commandf ¶
Commandf writes a free-form IMAP command to the server. If tag is empty, a next unique tag is assigned.
func (*Conn) Copy ¶
func (c *Conn) Copy(seqSet NumSet, dstMailbox string) (untagged []Untagged, result Result, rerr error)
Copy adds messages from the sequences in seqSet in the currently selected/active mailbox to dstMailbox.
func (*Conn) Enable ¶
Enable enables capabilities for use with the connection, verifying the server has indeed enabled them.
func (*Conn) List ¶
List lists mailboxes with the basic LIST syntax. Pattern can contain * (match any) or % (match any except hierarchy delimiter).
func (*Conn) ListFull ¶
func (c *Conn) ListFull(subscribedOnly bool, patterns ...string) (untagged []Untagged, result Result, rerr error)
ListFull lists mailboxes with the extended LIST syntax requesting all supported data. Pattern can contain * (match any) or % (match any except hierarchy delimiter).
func (*Conn) Logout ¶
Logout ends the IMAP session by writing a LOGOUT command. Close must still be called on this client to close the socket.
func (*Conn) Move ¶
func (c *Conn) Move(seqSet NumSet, dstMailbox string) (untagged []Untagged, result Result, rerr error)
Move moves messages from the sequences in seqSet in the currently selected/active mailbox to dstMailbox.
func (*Conn) Namespace ¶
Namespace returns the hiearchy separator in an UntaggedNamespace response with personal/shared/other namespaces if present.
func (*Conn) Noop ¶
Noop does nothing on its own, but a server will return any pending untagged responses for new message delivery and changes to mailboxes.
func (*Conn) ReadContinuation ¶
ReadContinuation reads a line. If it is a continuation, i.e. starts with a +, it is returned without leading "+ " and without trailing crlf. Otherwise, a command response is returned. A successfully read continuation can return an empty line. Callers should check rerr and result.Status being empty to check if a continuation was read.
func (*Conn) ReadUntagged ¶
ReadUntagged reads a single untagged response line. Useful for reading lines from IDLE.
func (*Conn) Readline ¶
Readline reads a line, including CRLF. Used with IDLE and synchronous literals.
func (*Conn) Response ¶
Response reads from the IMAP server until a tagged response line is found. The tag must be the same as the tag for the last written command. Result holds the status of the command. The caller must check if this the status is OK.
func (*Conn) ResponseOK ¶
func (*Conn) Status ¶
func (c *Conn) Status(mailbox string, attrs ...StatusAttr) (untagged []Untagged, result Result, rerr error)
Status requests information about a mailbox, such as number of messages, size, etc. At least one attribute required.
func (*Conn) StoreFlagsAdd ¶
func (c *Conn) StoreFlagsAdd(seqset string, silent bool, flags ...string) (untagged []Untagged, result Result, rerr error)
StoreFlagsAdd is like StoreFlagsSet, but only adds flags, leaving current flags on the message intact.
func (*Conn) StoreFlagsClear ¶
func (c *Conn) StoreFlagsClear(seqset string, silent bool, flags ...string) (untagged []Untagged, result Result, rerr error)
StoreFlagsClear is like StoreFlagsSet, but only removes flags, leaving other flags on the message intact.
func (*Conn) StoreFlagsSet ¶
func (c *Conn) StoreFlagsSet(seqset string, silent bool, flags ...string) (untagged []Untagged, result Result, rerr error)
StoreFlagsSet stores a new set of flags for messages from seqset with the STORE command. If silent, no untagged responses with the updated flags will be sent by the server.
func (*Conn) Subscribe ¶
Subscribe marks a mailbox as subscribed. The mailbox does not have to exist. It is not an error if the mailbox is already subscribed.
func (*Conn) TLSConnectionState ¶ added in v0.0.9
func (c *Conn) TLSConnectionState() *tls.ConnectionState
TLSConnectionState returns the TLS connection state if the connection uses TLS.
func (*Conn) Transactf ¶
func (c *Conn) Transactf(format string, args ...any) (untagged []Untagged, result Result, rerr error)
Transactf writes format and args as an IMAP command, using Commandf with an empty tag. I.e. format must not contain a tag. Transactf then reads a response using ReadResponse and checks the result status is OK.
func (*Conn) UIDCopy ¶
func (c *Conn) UIDCopy(uidSet NumSet, dstMailbox string) (untagged []Untagged, result Result, rerr error)
UIDCopy is like copy, but operates on UIDs.
func (*Conn) UIDExpunge ¶
UIDExpunge is like expunge, but only removes messages matching uidSet.
func (*Conn) UIDMove ¶
func (c *Conn) UIDMove(uidSet NumSet, dstMailbox string) (untagged []Untagged, result Result, rerr error)
UIDMove is like move, but operates on UIDs.
func (*Conn) Unselect ¶
Unselect closes the currently selected/active mailbox, but unlike CloseMailbox does not permanently remove any messages marked with \Deleted.
func (*Conn) Unsubscribe ¶
Unsubscribe marks a mailbox as unsubscribed.
func (*Conn) Write ¶
Write writes directly to the connection. Write errors do take the connections panic mode into account, i.e. Write can panic.
func (*Conn) WriteSyncLiteral ¶
WriteSyncLiteral first writes the synchronous literal size, then read the continuation "+" and finally writes the data.
type Envelope ¶
type Envelope struct { Date string Subject string From, Sender, ReplyTo, To, CC, BCC []Address InReplyTo, MessageID string }
Envelope holds the basic email message fields.
type Error ¶
type Error struct {
// contains filtered or unexported fields
}
Error is a parse or other protocol error.
type EsearchDataExt ¶
type EsearchDataExt struct { Tag string Value TaggedExtVal }
Extended data in an ESEARCH response.
type FetchAttr ¶
type FetchAttr interface {
Attr() string // Name of attribute.
}
FetchAttr represents a FETCH response attribute.
type FetchBinary ¶
"BINARY" fetch response.
func (FetchBinary) Attr ¶
func (f FetchBinary) Attr() string
type FetchBinarySize ¶
"BINARY.SIZE" fetch response.
func (FetchBinarySize) Attr ¶
func (f FetchBinarySize) Attr() string
type FetchBody ¶
type FetchBody struct { // ../rfc/9051:6756 ../rfc/9051:6985 RespAttr string Section string // todo: parse more ../rfc/9051:6985 Offset int32 Body string }
"BODY" fetch response.
type FetchBodystructure ¶
"BODYSTRUCTURE" fetch response.
func (FetchBodystructure) Attr ¶
func (f FetchBodystructure) Attr() string
type FetchEnvelope ¶
type FetchEnvelope Envelope
"ENVELOPE" fetch response.
func (FetchEnvelope) Attr ¶
func (f FetchEnvelope) Attr() string
type FetchFlags ¶
type FetchFlags []string
"FLAGS" fetch response.
func (FetchFlags) Attr ¶
func (f FetchFlags) Attr() string
type FetchInternalDate ¶
type FetchInternalDate string // todo: parsed time
"INTERNALDATE" fetch response.
func (FetchInternalDate) Attr ¶
func (f FetchInternalDate) Attr() string
type FetchModSeq ¶ added in v0.0.6
type FetchModSeq int64
"MODSEQ" fetch response.
func (FetchModSeq) Attr ¶ added in v0.0.6
func (f FetchModSeq) Attr() string
type FetchRFC822 ¶
type FetchRFC822 string
"RFC822" fetch response.
func (FetchRFC822) Attr ¶
func (f FetchRFC822) Attr() string
type FetchRFC822Header ¶
type FetchRFC822Header string
"RFC822.HEADER" fetch response.
func (FetchRFC822Header) Attr ¶
func (f FetchRFC822Header) Attr() string
type FetchRFC822Size ¶
type FetchRFC822Size int64
"RFC822.SIZE" fetch response.
func (FetchRFC822Size) Attr ¶
func (f FetchRFC822Size) Attr() string
type FetchRFC822Text ¶
type FetchRFC822Text string
"RFC82.TEXT" fetch response.
func (FetchRFC822Text) Attr ¶
func (f FetchRFC822Text) Attr() string
type MboxListExtendedItem ¶
type MboxListExtendedItem struct { // ../rfc/9051:6699 Tag string Val TaggedExtVal }
type NamespaceDescr ¶
type NamespaceDescr struct { // ../rfc/9051:6769 Prefix string Separator byte // If 0 then separator was absent. Exts []NamespaceExtension }
type NamespaceExtension ¶
type NumSet ¶
type NumSet struct { SearchResult bool // True if "$", in which case Ranges is irrelevant. Ranges []NumRange }
func ParseNumSet ¶ added in v0.0.6
type QuotaResource ¶ added in v0.0.11
type QuotaResource struct { Name QuotaResourceName Usage int64 // Currently in use. Count or disk size in 1024 byte blocks. Limit int64 // Maximum allowed usage. }
type QuotaResourceName ¶ added in v0.0.11
type QuotaResourceName string
QuotaResourceName is the name of a resource type. More can be defined in the future and encountered in the wild. Always in upper case.
type RespText ¶
type RespText struct { Code string // The first word between [] after the status. CodeArg CodeArg // Set if code has a parameter. More string // Any remaining text. }
RespText represents a response line minus the leading tag.
type StatusAttr ¶ added in v0.0.11
type StatusAttr string
../rfc/9051:7059 ../9208:712
const ( StatusMessages StatusAttr = "MESSAGES" StatusUIDNext StatusAttr = "UIDNEXT" StatusUIDValidity StatusAttr = "UIDVALIDITY" StatusUnseen StatusAttr = "UNSEEN" StatusDeleted StatusAttr = "DELETED" StatusSize StatusAttr = "SIZE" StatusRecent StatusAttr = "RECENT" StatusAppendLimit StatusAttr = "APPENDLIMIT" StatusHighestModSeq StatusAttr = "HIGHESTMODSEQ" StatusDeletedStorage StatusAttr = "DELETED-STORAGE" )
type TaggedExtComp ¶
type TaggedExtComp struct { String string Comps []TaggedExtComp // Used for both space-separated and (). }
type TaggedExtVal ¶
type TaggedExtVal struct { // ../rfc/9051:7111 Number *int64 SeqSet *NumSet Comp *TaggedExtComp // If SimpleNumber and SimpleSeqSet is nil, this is a Comp. But Comp is optional and can also be nil. Not great. }
type Untagged ¶
type Untagged any
Untagged is a parsed untagged response. See types starting with Untagged. todo: make an interface that the untagged responses implement?
type UntaggedBye ¶
type UntaggedBye RespText
type UntaggedCapability ¶
type UntaggedCapability []string
type UntaggedEnabled ¶
type UntaggedEnabled []string
type UntaggedEsearch ¶
type UntaggedEsearch struct { // ../rfc/9051:6546 Correlator string UID bool Min uint32 Max uint32 All NumSet Count *uint32 ModSeq int64 Exts []EsearchDataExt }
Fields are optional and zero if absent.
type UntaggedExists ¶
type UntaggedExists uint32
type UntaggedExpunge ¶
type UntaggedExpunge uint32
type UntaggedFetch ¶
type UntaggedFlags ¶
type UntaggedFlags []string
type UntaggedID ¶
type UntaggedList ¶
type UntaggedList struct { // ../rfc/9051:6690 Flags []string Separator byte // 0 for NIL Mailbox string Extended []MboxListExtendedItem OldName string // If present, taken out of Extended. }
type UntaggedLsub ¶
type UntaggedNamespace ¶
type UntaggedNamespace struct {
}
type UntaggedPreauth ¶
type UntaggedPreauth RespText
type UntaggedQuota ¶ added in v0.0.11
type UntaggedQuota struct { Root string // Always has at least one. Any QUOTA=RES-* capability not mentioned has no limit // or this quota root. Resources []QuotaResource }
UntaggedQuota holds the quota for a quota root.
type UntaggedQuotaroot ¶ added in v0.0.11
type UntaggedQuotaroot []string
UntaggedQuotaroot lists the roots for which quota can be present.
type UntaggedRecent ¶
type UntaggedRecent uint32
type UntaggedResult ¶
type UntaggedResult Result
type UntaggedSearch ¶
type UntaggedSearch []uint32
type UntaggedSearchModSeq ¶ added in v0.0.6
../rfc/7162:1101
type UntaggedStatus ¶
type UntaggedStatus struct { Mailbox string Attrs map[StatusAttr]int64 // Upper case status attributes. }
type UntaggedVanished ¶ added in v0.0.6
UntaggedVanished is used in QRESYNC to send UIDs that have been removed.