store

package
v0.0.0-...-d3065ff Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2022 License: GPL-3.0 Imports: 13 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Delimiter = "/"

Functions

This section is empty.

Types

type Backend

type Backend struct {
	Users map[string]*User
}

func New

func New() *Backend

func (*Backend) Login

func (be *Backend) Login(_ *imap.ConnInfo, username, password string) (backend.User, error)

type Mailbox

type Mailbox struct {
	Subscribed bool
	Messages   []*Message
	// contains filtered or unexported fields
}

func NewMailbox

func NewMailbox(user *User, parent *Mailbox, fsName string) (*Mailbox, error)

NewMailbox creates a new mailbox, scans for messages and then recursively for child mailboxes. Will create new dir in filesystem if it doesn't already exist. fsName is the partial name of the mailbox (just the directory name, under the parent).

func (*Mailbox) Check

func (mbox *Mailbox) Check() error

func (*Mailbox) CopyMessages

func (mbox *Mailbox) CopyMessages(uid bool, seqset *imap.SeqSet, destName string) error

func (*Mailbox) CreateMessage

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

func (*Mailbox) Expunge

func (mbox *Mailbox) Expunge() error

func (*Mailbox) Info

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

func (*Mailbox) ListMessages

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

func (*Mailbox) Name

func (mbox *Mailbox) Name() string

Name() returns the full IMAP name for the mailbox ("INBOX", "stuff/todo" etc).

func (*Mailbox) SearchMessages

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

func (*Mailbox) SetSubscribed

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

func (*Mailbox) Status

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

func (*Mailbox) UpdateMessagesFlags

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

type Message

type Message struct {
	Uid   uint32
	Date  time.Time
	Size  uint32
	Flags []string
	// contains filtered or unexported fields
}

func (*Message) Fetch

func (m *Message) Fetch(seqNum uint32, items []imap.FetchItem) (*imap.Message, error)

func (*Message) Match

func (m *Message) Match(seqNum uint32, c *imap.SearchCriteria) (bool, error)

type User

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

func NewUser

func NewUser(dir, name, pwd string) (*User, error)

NewUser creates a new User, with messages stored under the given dir. name and pwd are the login name and password respectively.

func (*User) CreateMailbox

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

func (*User) DeleteMailbox

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

func (*User) GetMailbox

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

func (*User) ListMailboxes

func (u *User) ListMailboxes(onlySubscribed 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) Username

func (u *User) Username() string

Jump to

Keyboard shortcuts

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