Documentation ¶
Index ¶
- type DummyMailbox
- func (m DummyMailbox) DebugPrintMailbox()
- func (m DummyMailbox) LastUID() uint32
- func (m DummyMailbox) MessageBySequenceNumber(seqno uint32) Message
- func (m DummyMailbox) MessageByUID(uidno uint32) Message
- func (m DummyMailbox) MessageSetBySequenceNumber(set types.SequenceSet) []Message
- func (m DummyMailbox) MessageSetByUID(set types.SequenceSet) []Message
- func (m DummyMailbox) Messages() uint32
- func (m DummyMailbox) Name() string
- func (m DummyMailbox) NewMessage() Message
- func (m DummyMailbox) NextUID() uint32
- func (m DummyMailbox) Recent() uint32
- func (m DummyMailbox) Unseen() uint32
- type DummyMailstore
- type DummyMessage
- func (m DummyMessage) AddFlags(newFlags types.Flags) Message
- func (m DummyMessage) Body() string
- func (m DummyMessage) Flags() types.Flags
- func (m DummyMessage) Header() (hdr textproto.MIMEHeader)
- func (m DummyMessage) InternalDate() time.Time
- func (m DummyMessage) Keywords() []string
- func (m DummyMessage) OverwriteFlags(newFlags types.Flags) Message
- func (m DummyMessage) RemoveFlags(newFlags types.Flags) Message
- func (m DummyMessage) Save() (Message, error)
- func (m DummyMessage) SequenceNumber() uint32
- func (m DummyMessage) SetBody(newBody string) Message
- func (m DummyMessage) SetHeaders(newHeader textproto.MIMEHeader) Message
- func (m DummyMessage) Size() uint32
- func (m DummyMessage) UID() uint32
- type DummyUser
- type Mailbox
- type Mailstore
- type Message
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DummyMailbox ¶
type DummyMailbox struct { ID uint32 // contains filtered or unexported fields }
DummyMailbox is an in-memory implementation of a Mailstore Mailbox
func (DummyMailbox) DebugPrintMailbox ¶
func (m DummyMailbox) DebugPrintMailbox()
DebugPrintMailbox prints out all messages in the mailbox to the command line for debugging purposes
func (DummyMailbox) LastUID ¶
func (m DummyMailbox) LastUID() uint32
LastUID returns the UID of the last message in the mailbox or if the mailbox is empty, the next expected UID
func (DummyMailbox) MessageBySequenceNumber ¶
func (m DummyMailbox) MessageBySequenceNumber(seqno uint32) Message
MessageBySequenceNumber returns a single message given the message's sequence number
func (DummyMailbox) MessageByUID ¶
func (m DummyMailbox) MessageByUID(uidno uint32) Message
MessageByUID returns a single message given the message's sequence number
func (DummyMailbox) MessageSetBySequenceNumber ¶
func (m DummyMailbox) MessageSetBySequenceNumber(set types.SequenceSet) []Message
MessageSetBySequenceNumber returns a slice of messages given a set of sequence number ranges
func (DummyMailbox) MessageSetByUID ¶
func (m DummyMailbox) MessageSetByUID(set types.SequenceSet) []Message
MessageSetByUID returns a slice of messages given a set of UID ranges. eg 1,5,9,28:140,190:*
func (DummyMailbox) Messages ¶
func (m DummyMailbox) Messages() uint32
Messages returns the total number of messages in the Mailbox
func (DummyMailbox) NewMessage ¶
func (m DummyMailbox) NewMessage() Message
func (DummyMailbox) NextUID ¶
func (m DummyMailbox) NextUID() uint32
NextUID returns the UID that is likely to be assigned to the next new message in the Mailbox
func (DummyMailbox) Recent ¶
func (m DummyMailbox) Recent() uint32
Recent returns the number of messages in the mailbox which are currently marked with the 'Recent' flag
func (DummyMailbox) Unseen ¶
func (m DummyMailbox) Unseen() uint32
Unseen returns the number of messages in the mailbox which are currently marked with the 'Unseen' flag
type DummyMailstore ¶
type DummyMailstore struct {
User DummyUser
}
DummyMailstore is an in-memory mail storage for testing purposes and to provide an example implementation of a mailstore
func NewDummyMailstore ¶
func NewDummyMailstore() DummyMailstore
NewDummyMailstore performs some initialisation and should always be used to create a new DummyMailstore
func (DummyMailstore) Authenticate ¶
func (d DummyMailstore) Authenticate(username string, password string) (User, error)
Authenticate implements the Authenticate method on the Mailstore interface
type DummyMessage ¶
type DummyMessage struct {
// contains filtered or unexported fields
}
DummyMessage is a representation of a single in-memory message in a DummyMailbox
func (DummyMessage) Body ¶
func (m DummyMessage) Body() string
Body returns the full body of the message
func (DummyMessage) Flags ¶
func (m DummyMessage) Flags() types.Flags
func (DummyMessage) Header ¶
func (m DummyMessage) Header() (hdr textproto.MIMEHeader)
Header returns the message's MIME Header
func (DummyMessage) InternalDate ¶
func (m DummyMessage) InternalDate() time.Time
InternalDate returns the internally stored date of the message
func (DummyMessage) Keywords ¶
func (m DummyMessage) Keywords() []string
Keywords returns any keywords associated with the message
func (DummyMessage) OverwriteFlags ¶
func (m DummyMessage) OverwriteFlags(newFlags types.Flags) Message
func (DummyMessage) RemoveFlags ¶
func (m DummyMessage) RemoveFlags(newFlags types.Flags) Message
func (DummyMessage) Save ¶
func (m DummyMessage) Save() (Message, error)
func (DummyMessage) SequenceNumber ¶
func (m DummyMessage) SequenceNumber() uint32
SequenceNumber returns the message's sequence number
func (DummyMessage) SetBody ¶
func (m DummyMessage) SetBody(newBody string) Message
func (DummyMessage) SetHeaders ¶
func (m DummyMessage) SetHeaders(newHeader textproto.MIMEHeader) Message
func (DummyMessage) Size ¶
func (m DummyMessage) Size() uint32
Size returns the message's full RFC822 size, including full message header and body
func (DummyMessage) UID ¶
func (m DummyMessage) UID() uint32
UID returns the message's unique identifier (UID)
type DummyUser ¶
type DummyUser struct {
// contains filtered or unexported fields
}
DummyUser is an in-memory representation of a mailstore's user
func (DummyUser) MailboxByName ¶
MailboxByName returns a DummyMailbox object, given the mailbox's name
type Mailbox ¶
type Mailbox interface { // The name of the mailbox Name() string // The unique identifier that will LIKELY be assigned // to the next mail that is added to this mailbox NextUID() uint32 // The UID of the very last message in the mailbox // If the mailbox is empty, this should return the next expected UID LastUID() uint32 // Number of recent messages in the mailbox Recent() uint32 // Number of messages in the mailbox Messages() uint32 // Number messages that do not have the Unseen flag set yet Unseen() uint32 // Get a message by its sequence number MessageBySequenceNumber(seqno uint32) Message // Get a message by its uid number MessageByUID(uidno uint32) Message // Get messages that belong to a set of ranges of UIDs MessageSetByUID(set types.SequenceSet) []Message // Get messages that belong to a set of ranges of sequence numbers MessageSetBySequenceNumber(set types.SequenceSet) []Message // Creates a new (empty) message that belongs to this mailbox // NOTE: This should not make any changes to the mailbox until the // message's `Save` method is called. NewMessage() Message }
Mailbox represents a mailbox belonging to a user in the mail storage system
type Mailstore ¶
type Mailstore interface { // Attempt to authenticate a user with given credentials, // and return the user if successful Authenticate(username string, password string) (User, error) }
Mailstore is an interface to be implemented to provide mail storage
type Message ¶
type Message interface { // Return the message's MIME headers as a map in format // key: value Header() textproto.MIMEHeader // Return the unique id of the email UID() uint32 // Return the sequence number of the email SequenceNumber() uint32 // Return the RFC822 size of the message Size() uint32 // Return the date the email was received by the server // (This is not the date on the envelope of the email) InternalDate() time.Time // Return the body of the email Body() string // Return the list of custom keywords/flags for this message Keywords() []string // Get the flags for this message Flags() types.Flags // Overwrite the flags for this message and return the updated message OverwriteFlags(types.Flags) Message // Write the flags for this message and return the updated message AddFlags(types.Flags) Message // Write the flags for this message and return the updated message RemoveFlags(types.Flags) Message // Overwrite the message headers SetHeaders(textproto.MIMEHeader) Message // Overwrite the message body SetBody(string) Message // Save any changes to the message Save() (Message, error) }
Message represents a standard email message