Packages
phoenix_kit
1.7.92
1.7.208
1.7.207
1.7.206
1.7.205
1.7.204
1.7.203
1.7.202
1.7.201
1.7.200
1.7.199
1.7.198
1.7.197
1.7.196
1.7.194
1.7.193
1.7.192
1.7.191
1.7.190
1.7.189
1.7.187
1.7.186
1.7.185
1.7.184
1.7.183
1.7.182
1.7.181
1.7.180
1.7.179
1.7.178
1.7.177
1.7.176
1.7.175
1.7.174
1.7.173
1.7.172
1.7.171
1.7.170
1.7.169
1.7.168
1.7.167
1.7.166
1.7.165
1.7.164
1.7.162
1.7.161
1.7.160
1.7.159
1.7.157
1.7.156
1.7.155
1.7.154
1.7.153
1.7.152
1.7.151
1.7.150
1.7.149
1.7.146
1.7.145
1.7.144
1.7.143
1.7.138
1.7.133
1.7.132
1.7.131
1.7.130
1.7.128
1.7.126
1.7.125
1.7.121
1.7.120
1.7.119
1.7.118
1.7.117
1.7.116
1.7.115
1.7.114
1.7.113
1.7.112
1.7.111
1.7.110
1.7.109
1.7.108
1.7.107
1.7.106
1.7.105
1.7.104
1.7.103
1.7.102
1.7.101
1.7.100
1.7.99
1.7.98
1.7.97
1.7.96
1.7.95
1.7.94
1.7.93
1.7.92
1.7.91
1.7.90
1.7.89
1.7.88
1.7.87
1.7.86
1.7.85
1.7.84
1.7.83
1.7.82
1.7.81
1.7.80
1.7.79
1.7.78
1.7.77
1.7.76
1.7.75
1.7.74
1.7.71
1.7.70
1.7.69
1.7.66
1.7.65
1.7.64
1.7.63
1.7.62
1.7.61
1.7.59
1.7.58
1.7.57
1.7.56
1.7.55
1.7.54
1.7.53
1.7.52
1.7.51
1.7.49
1.7.44
1.7.43
1.7.42
1.7.41
1.7.39
1.7.38
1.7.37
1.7.36
1.7.34
1.7.33
1.7.31
1.7.30
1.7.29
1.7.28
1.7.27
1.7.26
1.7.25
1.7.24
1.7.23
1.7.22
1.7.21
1.7.20
1.7.19
1.7.18
1.7.17
1.7.16
1.7.15
1.7.14
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.20
1.6.19
1.6.18
1.6.17
1.6.16
1.6.15
1.6.14
1.6.13
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.5.2
1.5.1
1.5.0
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.10
1.2.9
1.2.8
1.2.7
1.2.5
1.2.4
1.2.2
1.2.1
1.2.0
1.1.0
1.0.0
A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more
Current section
Files
Jump to
Current section
Files
lib/phoenix_kit/email/default_provider.ex
defmodule PhoenixKit.Email.DefaultProvider do
@moduledoc """
No-op email provider. Used when phoenix_kit_emails package is not installed.
- Interception: passes emails through unchanged, no tracking
- Templates: returns nil → triggers hardcoded fallbacks in Mailer
- AWS: returns empty/false → Mailer uses static config only
"""
@behaviour PhoenixKit.Email.Provider
# Interception — pass through, no tracking
@impl true
def intercept_before_send(email, _opts), do: email
@impl true
def handle_after_send(_email, _result), do: :ok
# Templates — nil triggers hardcoded fallback
@impl true
def get_active_template_by_name(_name), do: nil
@impl true
def render_template(_t, _v), do: %{subject: "", html_body: "", text_body: ""}
@impl true
def render_template(_t, _v, _l), do: %{subject: "", html_body: "", text_body: ""}
@impl true
def track_usage(_template), do: :ok
@impl true
def get_source_module(_template), do: nil
# AWS — not configured without package
@impl true
def get_aws_region, do: ""
@impl true
def get_aws_access_key, do: ""
@impl true
def get_aws_secret_key, do: ""
@impl true
def aws_configured?, do: false
# Test email — not supported without emails package
@impl true
def send_test_tracking_email(_recipient_email, _user_uuid), do: {:error, :not_supported}
# Provider detection — basic mapping
@impl true
def adapter_to_provider_name(nil, default), do: default
def adapter_to_provider_name(Swoosh.Adapters.AmazonSES, _), do: "amazon_ses"
def adapter_to_provider_name(Swoosh.Adapters.Mailgun, _), do: "mailgun"
def adapter_to_provider_name(Swoosh.Adapters.Sendgrid, _), do: "sendgrid"
def adapter_to_provider_name(Swoosh.Adapters.SMTP, _), do: "smtp"
def adapter_to_provider_name(Swoosh.Adapters.Postmark, _), do: "postmark"
def adapter_to_provider_name(Swoosh.Adapters.Local, _), do: "local"
def adapter_to_provider_name(Swoosh.Adapters.Test, _), do: "test"
def adapter_to_provider_name(_adapter, default), do: default
end