imap

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2019 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const MailboxPathSep = "."

Variables

This section is empty.

Functions

This section is empty.

Types

type Backend

type Backend struct {
	// contains filtered or unexported fields
}

func NewBackend

func NewBackend(driver, dsn string, opts Opts) (*Backend, error)

func (*Backend) CheckPlain

func (b *Backend) CheckPlain(username, password string) bool

func (*Backend) Close

func (b *Backend) Close() error

func (*Backend) CreateMessageLimit

func (b *Backend) CreateMessageLimit() *uint32

func (*Backend) CreateUser

func (b *Backend) CreateUser(username, password string) error

func (*Backend) DeleteUser

func (b *Backend) DeleteUser(username string) error

func (*Backend) EnableChildrenExt

func (b *Backend) EnableChildrenExt() bool

func (*Backend) GetExistingUser

func (b *Backend) GetExistingUser(username string) (backend.User, error)

func (*Backend) GetUser

func (b *Backend) GetUser(username string) (backend.User, error)

func (*Backend) ListUsers

func (b *Backend) ListUsers() ([]string, error)

func (*Backend) Login

func (b *Backend) Login(username, password string) (backend.User, error)

func (*Backend) SetMessageLimit

func (b *Backend) SetMessageLimit(val *uint32) error

func (*Backend) SetUserPassword

func (b *Backend) SetUserPassword(username, newPassword string) error

func (*Backend) Updates

func (b *Backend) Updates() <-chan backend.Update

func (*Backend) UserCreds

func (b *Backend) UserCreds(username string) (uint64, []byte, []byte, error)

type Mailbox

type Mailbox struct {
	// contains filtered or unexported fields
}

func (*Mailbox) Check

func (m *Mailbox) Check() error

func (*Mailbox) CopyMessages

func (m *Mailbox) CopyMessages(uid bool, seqset *imap.SeqSet, dest string) error

func (*Mailbox) CreateMessage

func (m *Mailbox) CreateMessage(flags []string, date time.Time, body imap.Literal) error

func (*Mailbox) CreateMessageLimit

func (m *Mailbox) CreateMessageLimit() *uint32

func (*Mailbox) DelMessages

func (m *Mailbox) DelMessages(uid bool, seqset *imap.SeqSet) error

func (*Mailbox) Expunge

func (m *Mailbox) Expunge() error

func (*Mailbox) Info

func (m *Mailbox) Info() (*imap.MailboxInfo, error)

func (*Mailbox) ListMessages

func (m *Mailbox) ListMessages(uid bool, seqset *imap.SeqSet, items []imap.FetchItem, ch chan<- *imap.Message) error

func (*Mailbox) MoveMessages

func (m *Mailbox) MoveMessages(uid bool, seqset *imap.SeqSet, dest string) error

func (*Mailbox) Name

func (m *Mailbox) Name() string

func (*Mailbox) SearchMessages

func (m *Mailbox) SearchMessages(uid bool, criteria *imap.SearchCriteria) ([]uint32, error)

func (*Mailbox) SetMessageLimit

func (m *Mailbox) SetMessageLimit(val *uint32) error

func (*Mailbox) SetSubscribed

func (m *Mailbox) SetSubscribed(subscribed bool) error

func (*Mailbox) Status

func (m *Mailbox) Status(items []imap.StatusItem) (*imap.MailboxStatus, error)

func (*Mailbox) UidNext

func (m *Mailbox) UidNext(tx *sql.Tx) (uint32, error)

func (*Mailbox) UpdateMessagesFlags

func (m *Mailbox) UpdateMessagesFlags(uid bool, seqset *imap.SeqSet, operation imap.FlagsOp, flags []string) error

type Opts

type Opts struct {
	// Maximum amount of bytes that backend will accept.
	// Intended for use with APPENDLIMIT extension.
	// nil value means no limit, 0 means zero limit (no new messages allowed)
	MaxMsgBytes *uint32

	// Controls when channel returned by Updates should be created.
	// If set to false - channel will be created before NewBackend returns.
	// If set to true - channel will be created upon first call to Updates.
	// Second is useful for tests that don't consume values from Updates
	// channel.
	LazyUpdatesInit bool

	// Custom randomness source for UIDVALIDITY values generation.
	PRNG Rand
}

Opts structure specifies additional settings that may be set for backend.

Please use names to reference structure members on creation, fields may be reordered or added without major version increment.

type Rand

type Rand interface {
	Uint32() uint32
}

type User

type User struct {
	// contains filtered or unexported fields
}

func (*User) CreateMailbox

func (u *User) CreateMailbox(name string) error

func (*User) CreateMessageLimit

func (u *User) CreateMessageLimit() *uint32

func (*User) DeleteMailbox

func (u *User) DeleteMailbox(name string) error

func (*User) GetMailbox

func (u *User) GetMailbox(name string) (backend.Mailbox, error)

func (*User) ID

func (u *User) ID() uint64

func (*User) ListMailboxes

func (u *User) ListMailboxes(subscribed bool) ([]backend.Mailbox, error)

func (*User) Logout

func (u *User) Logout() error

func (*User) RenameMailbox

func (u *User) RenameMailbox(existingName, newName string) error

func (*User) SetMessageLimit

func (u *User) SetMessageLimit(val *uint32) error

func (*User) Username

func (u *User) Username() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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