connector

package
v0.17.0 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2023 License: MIT Imports: 15 Imported by: 0

Documentation

Overview

Package connector defines the type that connects the server to a remote.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoSuchMailbox = errors.New("no such mailbox")
	ErrNoSuchMessage = errors.New("no such message")

	ErrInvalidPrefix   = errors.New("invalid prefix")
	ErrRenameForbidden = errors.New("rename operation is not allowed")
	ErrDeleteForbidden = errors.New("delete operation is not allowed")
)
View Source
var ErrMessageSizeExceedsLimits = errors.New("message size exceeds limits")
View Source
var ErrOperationNotAllowed = errors.New("operation not allowed")

Functions

This section is empty.

Types

type Connector

type Connector interface {
	// Authorize returns whether the given username/password combination are valid for this connector.
	Authorize(ctx context.Context, username string, password []byte) bool

	// CreateMailbox creates a mailbox with the given name.
	CreateMailbox(ctx context.Context, name []string) (imap.Mailbox, error)

	// GetMessageLiteral is intended to be used by Gluon when, for some reason, the local cached data no longer exists.
	// Note: this can get called from different go routines.
	GetMessageLiteral(ctx context.Context, id imap.MessageID) ([]byte, error)

	// GetMailboxVisibility can be used to retrieve the visibility of mailboxes for connected clients.
	GetMailboxVisibility(ctx context.Context, mboxID imap.MailboxID) imap.MailboxVisibility

	// UpdateMailboxName sets the name of the mailbox with the given ID.
	UpdateMailboxName(ctx context.Context, mboxID imap.MailboxID, newName []string) error

	// DeleteMailbox deletes the mailbox with the given ID.
	DeleteMailbox(ctx context.Context, mboxID imap.MailboxID) error

	// CreateMessage creates a new message on the remote.
	CreateMessage(ctx context.Context, mboxID imap.MailboxID, literal []byte, flags imap.FlagSet, date time.Time) (imap.Message, []byte, error)

	// AddMessagesToMailbox adds the given messages to the given mailbox.
	AddMessagesToMailbox(ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID) error

	// RemoveMessagesFromMailbox removes the given messages from the given mailbox.
	RemoveMessagesFromMailbox(ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID) error

	// MoveMessages removes the given messages from one mailbox and adds them to the another mailbox.
	// Returns true if the original messages should be removed from mboxFromID (e.g: Distinguishing between labels and folders).
	MoveMessages(ctx context.Context, messageIDs []imap.MessageID, mboxFromID, mboxToID imap.MailboxID) (bool, error)

	// MarkMessagesSeen sets the seen value of the given messages.
	MarkMessagesSeen(ctx context.Context, messageIDs []imap.MessageID, seen bool) error

	// MarkMessagesFlagged sets the flagged value of the given messages.
	MarkMessagesFlagged(ctx context.Context, messageIDs []imap.MessageID, flagged bool) error

	// GetUpdates returns a stream of updates that the gluon server should apply.
	GetUpdates() <-chan imap.Update

	// Close the connector will no longer be used and all resources should be closed/released.
	Close(ctx context.Context) error
}

Connector connects the gluon server to a remote mail store.

type Dummy

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

func NewDummy

func NewDummy(usernames []string, password []byte, period time.Duration, flags, permFlags, attrs imap.FlagSet) *Dummy

func (*Dummy) AddMessagesToMailbox added in v0.13.0

func (conn *Dummy) AddMessagesToMailbox(ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID) error

func (*Dummy) Authorize added in v0.3.0

func (conn *Dummy) Authorize(_ context.Context, username string, password []byte) bool

func (*Dummy) ClearUpdates added in v0.9.0

func (conn *Dummy) ClearUpdates()

func (*Dummy) Close

func (conn *Dummy) Close(ctx context.Context) error

func (*Dummy) CreateMailbox added in v0.13.0

func (conn *Dummy) CreateMailbox(ctx context.Context, name []string) (imap.Mailbox, error)

func (*Dummy) CreateMessage

func (conn *Dummy) CreateMessage(ctx context.Context, mboxID imap.MailboxID, literal []byte, flags imap.FlagSet, date time.Time) (imap.Message, []byte, error)

func (*Dummy) DeleteMailbox added in v0.13.0

func (conn *Dummy) DeleteMailbox(ctx context.Context, mboxID imap.MailboxID) error

func (*Dummy) Flush

func (conn *Dummy) Flush()

func (*Dummy) GetLastRecordedIMAPID added in v0.8.0

func (conn *Dummy) GetLastRecordedIMAPID() imap.IMAPID

func (*Dummy) GetMailboxVisibility added in v0.15.0

func (conn *Dummy) GetMailboxVisibility(_ context.Context, id imap.MailboxID) imap.MailboxVisibility

func (*Dummy) GetMessageLiteral added in v0.15.0

func (conn *Dummy) GetMessageLiteral(ctx context.Context, id imap.MessageID) ([]byte, error)

func (*Dummy) GetUpdates

func (conn *Dummy) GetUpdates() <-chan imap.Update

func (*Dummy) MailboxCreated

func (conn *Dummy) MailboxCreated(mbox imap.Mailbox) error

func (*Dummy) MailboxDeleted

func (conn *Dummy) MailboxDeleted(mboxID imap.MailboxID) error

func (*Dummy) MarkMessagesFlagged

func (conn *Dummy) MarkMessagesFlagged(ctx context.Context, messageIDs []imap.MessageID, flagged bool) error

func (*Dummy) MarkMessagesSeen

func (conn *Dummy) MarkMessagesSeen(ctx context.Context, messageIDs []imap.MessageID, seen bool) error

func (*Dummy) MessageAdded

func (conn *Dummy) MessageAdded(messageID imap.MessageID, mboxID imap.MailboxID) error

func (*Dummy) MessageCreated

func (conn *Dummy) MessageCreated(message imap.Message, literal []byte, mboxIDs []imap.MailboxID) error

func (*Dummy) MessageDeleted added in v0.8.1

func (conn *Dummy) MessageDeleted(messageID imap.MessageID) error

func (*Dummy) MessageFlagged

func (conn *Dummy) MessageFlagged(messageID imap.MessageID, flagged bool) error

func (*Dummy) MessageRemoved

func (conn *Dummy) MessageRemoved(messageID imap.MessageID, mboxID imap.MailboxID) error

func (*Dummy) MessageSeen

func (conn *Dummy) MessageSeen(messageID imap.MessageID, seen bool) error

func (*Dummy) MessageUpdated added in v0.14.0

func (conn *Dummy) MessageUpdated(message imap.Message, literal []byte, mboxIDs []imap.MailboxID) error

func (*Dummy) MessagesCreated added in v0.12.0

func (conn *Dummy) MessagesCreated(messages []imap.Message, literals [][]byte, mboxIDs [][]imap.MailboxID) error

func (*Dummy) MoveMessages added in v0.12.0

func (conn *Dummy) MoveMessages(ctx context.Context, messageIDs []imap.MessageID, mboxFromID, mboxToID imap.MailboxID) (bool, error)

func (*Dummy) RemoveMessagesFromMailbox added in v0.13.0

func (conn *Dummy) RemoveMessagesFromMailbox(ctx context.Context, messageIDs []imap.MessageID, mboxID imap.MailboxID) error

func (*Dummy) SetAllowMessageCreateWithUnknownMailboxID added in v0.15.0

func (conn *Dummy) SetAllowMessageCreateWithUnknownMailboxID(value bool)

func (*Dummy) SetFolderPrefix

func (conn *Dummy) SetFolderPrefix(pfx string)

func (*Dummy) SetLabelsPrefix added in v0.14.0

func (conn *Dummy) SetLabelsPrefix(pfx string)

func (*Dummy) SetMailboxVisibility added in v0.15.0

func (conn *Dummy) SetMailboxVisibility(id imap.MailboxID, visibility imap.MailboxVisibility)

func (*Dummy) SetUpdatesAllowedToFail added in v0.15.0

func (conn *Dummy) SetUpdatesAllowedToFail(value bool)

func (*Dummy) Sync

func (conn *Dummy) Sync(ctx context.Context) error

func (*Dummy) UIDValidityBumped added in v0.14.0

func (conn *Dummy) UIDValidityBumped()

func (*Dummy) UpdateMailboxName added in v0.13.0

func (conn *Dummy) UpdateMailboxName(ctx context.Context, mboxID imap.MailboxID, newName []string) error

Directories

Path Synopsis
Package mock_connector is a generated GoMock package.
Package mock_connector is a generated GoMock package.

Jump to

Keyboard shortcuts

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