mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-17 17:47:03 +00:00
- Add new configuration option [datastore]mailbox.message.cap - Modify filestore to enforce message cap if value > 0 - Filestore unit tests for message cap when enabled & disabled - Change to DataStore.Mailbox.NewMessage() interface to allow error return
38 lines
722 B
Go
38 lines
722 B
Go
package smtpd
|
|
|
|
import (
|
|
"github.com/jhillyerd/go.enmime"
|
|
"io"
|
|
"net/mail"
|
|
"time"
|
|
)
|
|
|
|
type DataStore interface {
|
|
MailboxFor(emailAddress string) (Mailbox, error)
|
|
AllMailboxes() ([]Mailbox, error)
|
|
}
|
|
|
|
type Mailbox interface {
|
|
GetMessages() ([]Message, error)
|
|
GetMessage(id string) (Message, error)
|
|
Purge() error
|
|
NewMessage() (Message, error)
|
|
String() string
|
|
}
|
|
|
|
type Message interface {
|
|
Id() string
|
|
From() string
|
|
Date() time.Time
|
|
Subject() string
|
|
RawReader() (reader io.ReadCloser, err error)
|
|
ReadHeader() (msg *mail.Message, err error)
|
|
ReadBody() (body *enmime.MIMEBody, err error)
|
|
ReadRaw() (raw *string, err error)
|
|
Append(data []byte) error
|
|
Close() error
|
|
Delete() error
|
|
String() string
|
|
Size() int64
|
|
}
|