Documentation
¶
Overview ¶
Package mailqueue provides email queue storage and management.
Index ¶
- func BuildEmailMessage(from, to, subject, body string) []byte
- func BuildEmailMessageWithHeaders(from, to, subject, body string, headers map[string]string) []byte
- func BuildEmailMessageWithThreading(from, to, subject, body, domain string, inReplyTo, references string) []byte
- func BuildHTMLEmailMessage(from, to, subject, htmlBody string) []byte
- func BuildTextEmailMessage(from, to, subject, textBody string) []byte
- func ExtractMessageIDFromRawMessage(rawMessage []byte) string
- func GenerateMessageID(domain string) string
- type MailQueueItem
- type MailQueueRepository
- func (r *MailQueueRepository) Delete(ctx context.Context, id int64) error
- func (r *MailQueueRepository) GetFailed(ctx context.Context, maxAttempts int, limit int) ([]*MailQueueItem, error)
- func (r *MailQueueRepository) GetPending(ctx context.Context, limit int) ([]*MailQueueItem, error)
- func (r *MailQueueRepository) Insert(ctx context.Context, item *MailQueueItem) error
- func (r *MailQueueRepository) UpdateAttempts(ctx context.Context, id int64, smtpCode *int, smtpMessage *string, ...) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildEmailMessage ¶
BuildEmailMessage automatically detects content type and builds appropriate email message.
func BuildEmailMessageWithHeaders ¶
BuildEmailMessageWithHeaders builds an email message with optional headers for threading.
func BuildEmailMessageWithThreading ¶
func BuildEmailMessageWithThreading(from, to, subject, body, domain string, inReplyTo, references string) []byte
BuildEmailMessageWithThreading builds an email message with threading headers.
func BuildHTMLEmailMessage ¶
BuildHTMLEmailMessage constructs a properly formatted HTML email message.
func BuildTextEmailMessage ¶
BuildTextEmailMessage constructs a properly formatted plain text email message.
func ExtractMessageIDFromRawMessage ¶
ExtractMessageIDFromRawMessage extracts the Message-ID header from a raw email message.
func GenerateMessageID ¶
GenerateMessageID creates a unique Message-ID header for email threading.
Types ¶
type MailQueueItem ¶
type MailQueueItem struct {
ID int64
InsertFingerprint *string
ArticleID *int64
Attempts int
Sender *string
Recipient string
RawMessage []byte
DueTime *time.Time
LastSMTPCode *int
LastSMTPMessage *string
CreateTime time.Time
}
MailQueueItem represents an email in the queue.
type MailQueueRepository ¶
type MailQueueRepository struct {
// contains filtered or unexported fields
}
MailQueueRepository handles database operations for the mail queue.
func NewMailQueueRepository ¶
func NewMailQueueRepository(db *sql.DB) *MailQueueRepository
NewMailQueueRepository creates a new mail queue repository.
func (*MailQueueRepository) Delete ¶
func (r *MailQueueRepository) Delete(ctx context.Context, id int64) error
Delete removes a successfully sent email from the queue.
func (*MailQueueRepository) GetFailed ¶
func (r *MailQueueRepository) GetFailed(ctx context.Context, maxAttempts int, limit int) ([]*MailQueueItem, error)
GetFailed retrieves emails that have exceeded max attempts.
func (*MailQueueRepository) GetPending ¶
func (r *MailQueueRepository) GetPending(ctx context.Context, limit int) ([]*MailQueueItem, error)
GetPending retrieves emails that are ready to be sent (due_time is null or past).
func (*MailQueueRepository) Insert ¶
func (r *MailQueueRepository) Insert(ctx context.Context, item *MailQueueItem) error
Insert adds a new email to the queue.