Unified email provider behaviour.
Covers interception (pre/post send hooks), DB templates, AWS config, and provider detection. The emails package implements this fully. The DefaultProvider is a no-op that passes emails through unchanged.
Summary
Callbacks
@callback aws_configured?() :: boolean()
@callback get_aws_access_key() :: String.t()
@callback get_aws_region() :: String.t()
@callback get_aws_secret_key() :: String.t()
@callback handle_after_send(Swoosh.Email.t(), {:ok, any()} | {:error, any()}) :: :ok
@callback intercept_before_send( Swoosh.Email.t(), keyword() ) :: Swoosh.Email.t()
@callback send_test_tracking_email(String.t(), String.t() | nil) :: {:ok, Swoosh.Email.t()} | {:error, any()}
@callback track_usage(map()) :: :ok
Functions
@spec current() :: module()
Returns the configured email provider module, defaulting to DefaultProvider.