commands

package
v0.0.0-...-316373f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 2, 2022 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package commands implements IMAP commands defined in RFC 3501.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Append

type Append struct {
	Mailbox string
	Flags   []string
	Date    time.Time
	Message imap.Literal
}

Append is an APPEND command, as defined in RFC 3501 section 6.3.11.

func (*Append) Command

func (cmd *Append) Command() *imap.Command

func (*Append) Parse

func (cmd *Append) Parse(fields []interface{}) (err error)

type Authenticate

type Authenticate struct {
	Mechanism       string
	InitialResponse []byte
}

Authenticate is an AUTHENTICATE command, as defined in RFC 3501 section 6.2.2.

func (*Authenticate) Command

func (cmd *Authenticate) Command() *imap.Command

func (*Authenticate) Handle

func (cmd *Authenticate) Handle(mechanisms map[string]sasl.Server, conn AuthenticateConn) error

func (*Authenticate) Parse

func (cmd *Authenticate) Parse(fields []interface{}) error

type AuthenticateConn

type AuthenticateConn interface {
	io.Reader

	// WriteResp writes an IMAP response to this connection.
	WriteResp(res imap.WriterTo) error
}

AuthenticateConn is a connection that supports IMAP authentication.

type Capability

type Capability struct{}

Capability is a CAPABILITY command, as defined in RFC 3501 section 6.1.1.

func (*Capability) Command

func (c *Capability) Command() *imap.Command

func (*Capability) Parse

func (c *Capability) Parse(fields []interface{}) error

type Check

type Check struct{}

Check is a CHECK command, as defined in RFC 3501 section 6.4.1.

func (*Check) Command

func (cmd *Check) Command() *imap.Command

func (*Check) Parse

func (cmd *Check) Parse(fields []interface{}) error

type Close

type Close struct{}

Close is a CLOSE command, as defined in RFC 3501 section 6.4.2.

func (*Close) Command

func (cmd *Close) Command() *imap.Command

func (*Close) Parse

func (cmd *Close) Parse(fields []interface{}) error

type Copy

type Copy struct {
	SeqSet  *imap.SeqSet
	Mailbox string
}

Copy is a COPY command, as defined in RFC 3501 section 6.4.7.

func (*Copy) Command

func (cmd *Copy) Command() *imap.Command

func (*Copy) Parse

func (cmd *Copy) Parse(fields []interface{}) error

type Create

type Create struct {
	Mailbox string
}

Create is a CREATE command, as defined in RFC 3501 section 6.3.3.

func (*Create) Command

func (cmd *Create) Command() *imap.Command

func (*Create) Parse

func (cmd *Create) Parse(fields []interface{}) error

type Delete

type Delete struct {
	Mailbox string
}

Delete is a DELETE command, as defined in RFC 3501 section 6.3.3.

func (*Delete) Command

func (cmd *Delete) Command() *imap.Command

func (*Delete) Parse

func (cmd *Delete) Parse(fields []interface{}) error

type Enable

type Enable struct {
	Caps []string
}

An ENABLE command, defined in RFC 5161 section 3.1.

func (*Enable) Command

func (cmd *Enable) Command() *imap.Command

func (*Enable) Parse

func (cmd *Enable) Parse(fields []interface{}) error

type Expunge

type Expunge struct{}

Expunge is an EXPUNGE command, as defined in RFC 3501 section 6.4.3.

func (*Expunge) Command

func (cmd *Expunge) Command() *imap.Command

func (*Expunge) Parse

func (cmd *Expunge) Parse(fields []interface{}) error

type Fetch

type Fetch struct {
	SeqSet *imap.SeqSet
	Items  []imap.FetchItem
}

Fetch is a FETCH command, as defined in RFC 3501 section 6.4.5.

func (*Fetch) Command

func (cmd *Fetch) Command() *imap.Command

func (*Fetch) Parse

func (cmd *Fetch) Parse(fields []interface{}) error

type Idle

type Idle struct{}

An IDLE command. Se RFC 2177 section 3.

func (*Idle) Command

func (cmd *Idle) Command() *imap.Command

func (*Idle) Parse

func (cmd *Idle) Parse(fields []interface{}) error

type List

type List struct {
	Reference string
	Mailbox   string

	Subscribed bool
}

List is a LIST command, as defined in RFC 3501 section 6.3.8. If Subscribed is set to true, LSUB will be used instead.

func (*List) Command

func (cmd *List) Command() *imap.Command

func (*List) Parse

func (cmd *List) Parse(fields []interface{}) error

type Login

type Login struct {
	Username string
	Password string
}

Login is a LOGIN command, as defined in RFC 3501 section 6.2.2.

func (*Login) Command

func (cmd *Login) Command() *imap.Command

func (*Login) Parse

func (cmd *Login) Parse(fields []interface{}) error

type Logout

type Logout struct{}

Logout is a LOGOUT command, as defined in RFC 3501 section 6.1.3.

func (*Logout) Command

func (c *Logout) Command() *imap.Command

func (*Logout) Parse

func (c *Logout) Parse(fields []interface{}) error

type Move

type Move struct {
	SeqSet  *imap.SeqSet
	Mailbox string
}

A MOVE command. See RFC 6851 section 3.1.

func (*Move) Command

func (cmd *Move) Command() *imap.Command

func (*Move) Parse

func (cmd *Move) Parse(fields []interface{}) (err error)

type Noop

type Noop struct{}

Noop is a NOOP command, as defined in RFC 3501 section 6.1.2.

func (*Noop) Command

func (c *Noop) Command() *imap.Command

func (*Noop) Parse

func (c *Noop) Parse(fields []interface{}) error

type Rename

type Rename struct {
	Existing string
	New      string
}

Rename is a RENAME command, as defined in RFC 3501 section 6.3.5.

func (*Rename) Command

func (cmd *Rename) Command() *imap.Command

func (*Rename) Parse

func (cmd *Rename) Parse(fields []interface{}) error
type Search struct {
	Charset  string
	Criteria *imap.SearchCriteria
}

Search is a SEARCH command, as defined in RFC 3501 section 6.4.4.

func (*Search) Command

func (cmd *Search) Command() *imap.Command

func (*Search) Parse

func (cmd *Search) Parse(fields []interface{}) error

type Select

type Select struct {
	Mailbox  string
	ReadOnly bool
}

Select is a SELECT command, as defined in RFC 3501 section 6.3.1. If ReadOnly is set to true, the EXAMINE command will be used instead.

func (*Select) Command

func (cmd *Select) Command() *imap.Command

func (*Select) Parse

func (cmd *Select) Parse(fields []interface{}) error

type StartTLS

type StartTLS struct{}

StartTLS is a STARTTLS command, as defined in RFC 3501 section 6.2.1.

func (*StartTLS) Command

func (cmd *StartTLS) Command() *imap.Command

func (*StartTLS) Parse

func (cmd *StartTLS) Parse(fields []interface{}) error

type Status

type Status struct {
	Mailbox string
	Items   []imap.StatusItem
}

Status is a STATUS command, as defined in RFC 3501 section 6.3.10.

func (*Status) Command

func (cmd *Status) Command() *imap.Command

func (*Status) Parse

func (cmd *Status) Parse(fields []interface{}) error

type Store

type Store struct {
	SeqSet *imap.SeqSet
	Item   imap.StoreItem
	Value  interface{}
}

Store is a STORE command, as defined in RFC 3501 section 6.4.6.

func (*Store) Command

func (cmd *Store) Command() *imap.Command

func (*Store) Parse

func (cmd *Store) Parse(fields []interface{}) error

type Subscribe

type Subscribe struct {
	Mailbox string
}

Subscribe is a SUBSCRIBE command, as defined in RFC 3501 section 6.3.6.

func (*Subscribe) Command

func (cmd *Subscribe) Command() *imap.Command

func (*Subscribe) Parse

func (cmd *Subscribe) Parse(fields []interface{}) error

type Uid

type Uid struct {
	Cmd imap.Commander
}

Uid is a UID command, as defined in RFC 3501 section 6.4.8. It wraps another command (e.g. wrapping a Fetch command will result in a UID FETCH).

func (*Uid) Command

func (cmd *Uid) Command() *imap.Command

func (*Uid) Parse

func (cmd *Uid) Parse(fields []interface{}) error

type Unselect

type Unselect struct{}

An UNSELECT command. See RFC 3691 section 2.

func (*Unselect) Command

func (cmd *Unselect) Command() *imap.Command

func (*Unselect) Parse

func (cmd *Unselect) Parse(fields []interface{}) error

type Unsubscribe

type Unsubscribe struct {
	Mailbox string
}

An UNSUBSCRIBE command. See RFC 3501 section 6.3.7

func (*Unsubscribe) Command

func (cmd *Unsubscribe) Command() *imap.Command

func (*Unsubscribe) Parse

func (cmd *Unsubscribe) Parse(fields []interface{}) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL