mailer

package
v3.9.0 Latest Latest
Warning

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

Go to latest
Published: Jul 6, 2026 License: MIT Imports: 23 Imported by: 0

Documentation

Overview

Package mailer provides email sending over a pluggable transport (SMTP, in-memory) with RFC 5322 / MIME rendering.

Index

Constants

View Source
const ServiceMailer = "service.mailer.mailer"

Variables

This section is empty.

Functions

func MailerMustFromContainer

func MailerMustFromContainer(serviceContainer containercontract.Container) mailercontract.Mailer

func MailerMustFromResolver

func MailerMustFromResolver(resolver containercontract.Resolver) mailercontract.Mailer

func RenderMessage

func RenderMessage(message mailercontract.Message) ([]byte, error)

Types

type InMemoryTransport

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

func NewInMemoryTransport

func NewInMemoryTransport() *InMemoryTransport

func (*InMemoryTransport) Send

func (instance *InMemoryTransport) Send(runtimeInstance runtimecontract.Runtime, message mailercontract.Message) error

func (*InMemoryTransport) Sent

func (instance *InMemoryTransport) Sent() []mailercontract.Message

type LogTransport added in v3.8.0

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

func NewLogTransport added in v3.8.0

func NewLogTransport(logger loggingcontract.Logger) *LogTransport

@info LogTransport writes the recipients (To, Cc, Bcc), subject, both the text and HTML bodies, and per-attachment metadata of every message to the logger instead of delivering it; intended for local development so a misconfigured app never sends real mail

func (*LogTransport) Send added in v3.8.0

func (instance *LogTransport) Send(runtimeInstance runtimecontract.Runtime, message mailercontract.Message) error

@info the logger supplied at construction is preferred; when it is nil the request-scoped logger is resolved quietly from the runtime (a missing logger service is swallowed rather than emitting an emergency log on every send), and when neither is available the send is a safe no-op

type Manager

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

func NewManager

func NewManager(transport mailercontract.Transport) *Manager

func (*Manager) Send

func (instance *Manager) Send(runtimeInstance runtimecontract.Runtime, message mailercontract.Message) error

type SmtpConfig

type SmtpConfig struct {
	Address     string
	Host        string
	Username    string
	Password    string
	RequireTls  bool
	RequireAuth bool
	ImplicitTls bool
	TlsConfig   *tls.Config
}

type SmtpTransport

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

func NewSmtpTransport

func NewSmtpTransport(config SmtpConfig) *SmtpTransport

func (*SmtpTransport) Send

func (instance *SmtpTransport) Send(runtimeInstance runtimecontract.Runtime, message mailercontract.Message) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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