Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶ added in v0.2.0
type Config struct {
// TODO: support json marshal for duration
Hostname string `json:"hostname"`
Directory string `json:"directory"`
DisableSSLVerification bool `json:"disable-ssl-verification"`
InitialInterval time.Duration `json:"-"`
RandomizationFactor float64 `json:"randomization_factor"`
Multiplier float64 `json:"multiplier"`
MaxInterval time.Duration `json:"-"`
MaxAttempts int `json:"max_attempts"`
Jitter bool `json:"jitter"`
// MessageTTL is the time to live for messages when we're trying to load them.
MessageTTL time.Duration `json:"-"`
// Map domain names to DKIM config for that domain
DKIMConfigs map[string]DKIMConfig `json:"dkim-configs"`
// ProcessFunc allow you to define custom process function for message.
ProcessFunc ProcessFunc `json:"-"`
// ProcessFailFunc allow you to define processor if message failed with 5xx status.
ProcessFailFunc ProcessFailFunc `json:"-"`
}
Application configuration.
type DKIMConfig ¶ added in v0.3.2
type Host ¶
type Host struct {
// contains filtered or unexported fields
}
Persistent connection to an SMTP host.
func (*Host) Status ¶ added in v0.3.0
func (h *Host) Status() *HostStatus
Return the status of the host connection.
type HostStatus ¶ added in v0.3.0
Host status information.
type MailServerFinder ¶ added in v1.0.3
type MailServerFinder interface {
// Attempt to find the mail servers for the specified host. MX records are
// checked first. If one or more were found, the records are converted into an
// array of strings (sorted by priority). If none were found, the original host
// is returned.
FindServers(host string) ([]string, error)
}
type Message ¶ added in v0.2.0
type Message struct {
Host string `json:"host"`
From string `json:"from"`
To []string `json:"to"`
Attempt int `json:"attempt"`
// Metadata can store any data useful for custom processors.
Metadata map[string]string `json:"metadata"`
// contains filtered or unexported fields
}
Message metadata.
type ProcessFailFunc ¶ added in v1.1.0
type ProcessFunc ¶ added in v1.0.3
type Queue ¶
type Queue struct {
Storage *Storage
// contains filtered or unexported fields
}
Mail queue managing the sending of messages to hosts.
func NewQueue ¶
Create a new message queue. Any undelivered messages on disk will be added to the appropriate queue.
func (*Queue) Status ¶ added in v0.3.0
func (q *Queue) Status() *QueueStatus
Provide the status of each host queue.
type QueueStatus ¶ added in v0.3.0
type QueueStatus struct {
Uptime int `json:"uptime"`
Hosts map[string]*HostStatus `json:"hosts"`
}
QueueStatus status information.
type SMTPError ¶ added in v1.0.3
type SMTPError struct {
Err error
}
func (*SMTPError) IsPermanent ¶ added in v1.0.3
func (*SMTPError) IsTemporary ¶ added in v1.0.3
type Storage ¶ added in v0.2.0
type Storage struct {
// contains filtered or unexported fields
}
Manager for message metadata and body on disk. All methods are safe to call from multiple goroutines.
func NewStorage ¶ added in v0.2.0
NewStorage creates a Storage instance for the specified directory. TTL is the time to live for messages, after which they will be deleted.
func (*Storage) DeleteMessage ¶ added in v0.2.0
Delete the specified message. The message body is also deleted if no more messages exist.
func (*Storage) GetMessageBody ¶ added in v0.2.0
func (s *Storage) GetMessageBody(m *Message) (io.ReadCloser, error)
Retreive a reader for the message body.
func (*Storage) LoadMessages ¶ added in v0.2.0
Load messages from the storage directory. Any messages that could not be loaded are ignored.