package commands

import "github.com/ncastellani/imapServer/commands"

Package commands implements IMAP commands defined in RFC 3501.

Index

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
}

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 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 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 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 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

Source Files

append.go authenticate.go capability.go check.go close.go commands.go copy.go create.go delete.go expunge.go fetch.go list.go login.go logout.go noop.go rename.go search.go select.go starttls.go status.go store.go subscribe.go uid.go

Version
v1.0.0-beta.1
Published
Feb 16, 2018
Platform
darwin/amd64
Imports
9 packages
Last checked
11 minutes ago

Tools for package owners.