Documentation
¶
Index ¶
- Constants
- Variables
- func ProvideEmailer(ctx context.Context, cfg *Config, logger logging.Logger, ...) (email.Emailer, error)
- func RegisterEmailer(i do.Injector)
- type Config
- func (cfg *Config) BuildHermes(branding *email.EmailBranding) *hermes.Hermes
- func (cfg *Config) EnsureDefaults()
- func (cfg *Config) ProvideEmailer(logger logging.Logger, tracerProvider tracing.TracerProvider, ...) (email.Emailer, error)
- func (cfg *Config) ValidateWithContext(ctx context.Context) error
Constants ¶
View Source
const ( // ProviderSendgrid represents SendGrid. ProviderSendgrid = "sendgrid" // ProviderMailgun represents Mailgun. ProviderMailgun = "mailgun" // ProviderMailjet represents Mailjet. ProviderMailjet = "mailjet" // ProviderResend represents Resend. ProviderResend = "resend" // ProviderPostmark represents Postmark. ProviderPostmark = "postmark" )
Variables ¶
View Source
var ( // Providers are what we provide to dependency injection. Providers = wire.NewSet( ProvideEmailer, ) )
Functions ¶
func ProvideEmailer ¶
func ProvideEmailer(ctx context.Context, cfg *Config, logger logging.Logger, tracerProvider tracing.TracerProvider, metricsProvider metrics.Provider, client *http.Client) (email.Emailer, error)
ProvideEmailer provides an email.Emailer from a config.
func RegisterEmailer ¶
RegisterEmailer registers an email.Emailer with the injector.
Types ¶
type Config ¶
type Config struct {
Sendgrid *sendgrid.Config `env:"init" envPrefix:"SENDGRID_" json:"sendgrid"`
Mailgun *mailgun.Config `env:"init" envPrefix:"MAILGUN_" json:"mailgun"`
Mailjet *mailjet.Config `env:"init" envPrefix:"MAILJET_" json:"mailjet"`
Resend *resend.Config `env:"init" envPrefix:"RESEND_" json:"resend"`
Postmark *postmark.Config `env:"init" envPrefix:"POSTMARK_" json:"postmark"`
Provider string `env:"PROVIDER" json:"provider"`
BaseURL template.URL `env:"BASE_URL" json:"baseURL"`
OutboundInvitesEmailAddress string `env:"OUTBOUND_INVITES_EMAIL_ADDRESS" json:"outboundInvitesEmailAddress"`
PasswordResetCreationEmailAddress string `env:"PASSWORD_RESET_CREATION_EMAIL_ADDRESS" json:"passwordResetCreationEmailAddress"`
PasswordResetRedemptionEmailAddress string `env:"PASSWORD_RESET_REDEMPTION_EMAIL_ADDRESS" json:"passwordResetRedemptionEmailAddress"`
CircuitBreaker circuitbreaking.Config `env:"init" envPrefix:"CIRCUIT_BREAKING_" json:"circuitBreakerConfig"`
}
Config is the configuration structure.
func (*Config) BuildHermes ¶
func (cfg *Config) BuildHermes(branding *email.EmailBranding) *hermes.Hermes
BuildHermes builds a Hermes instance for rendering email templates.
func (*Config) EnsureDefaults ¶
func (cfg *Config) EnsureDefaults()
EnsureDefaults sets sensible defaults for zero-valued fields.
func (*Config) ProvideEmailer ¶
func (cfg *Config) ProvideEmailer(logger logging.Logger, tracerProvider tracing.TracerProvider, client *http.Client, circuitBreaker circuitbreaking.CircuitBreaker) (email.Emailer, error)
ProvideEmailer provides an outbound_emailer.
Click to show internal directories.
Click to hide internal directories.