PhoenixKit.Emails.ApplicationIntegration (phoenix_kit v1.6.15)
View SourceHelpers for integrating PhoenixKit Email Tracking into parent applications.
This module provides convenient functions for adding email system to your Phoenix application's supervision tree.
Quick Integration
The simplest way to add email system:
# In lib/your_app/application.ex
def start(_type, _args) do
children = [
# ... your processes
] ++ PhoenixKit.Emails.ApplicationIntegration.children()
Supervisor.start_link(children, strategy: :one_for_one)
endConditional Integration
If you want to control when email system starts:
# In lib/your_app/application.ex
def start(_type, _args) do
base_children = [
# ... your main processes
]
children = base_children ++ email_children()
Supervisor.start_link(children, strategy: :one_for_one)
end
defp email_children do
if email_enabled?() do
PhoenixKit.Emails.ApplicationIntegration.children()
else
[]
end
end
defp email_enabled? do
# Your logic for determining if email system is enabled
System.get_env("EMAIL_TRACKING_ENABLED") == "true"
endAdvanced Integration
For full control use separate functions:
children = [
# ... your processes
] ++ PhoenixKit.Emails.ApplicationIntegration.supervisor_children()
Summary
Functions
Returns list of child specs for adding to supervision tree.
Creates initial configuration for email system.
Performs pre-flight checks for email system system.
Checks if system is ready to start email system.
Returns child spec for email system supervisor.
Returns only children for supervisor (without supervisor itself).
Functions
Returns list of child specs for adding to supervision tree.
This is the main function for email system integration.
Options
:supervisor_name- supervisor process name:start_sqs_worker- force enable/disable SQS Worker
Examples
# Basic usage
children = PhoenixKit.Emails.ApplicationIntegration.children()
# With custom options
children = PhoenixKit.Emails.ApplicationIntegration.children(
supervisor_name: MyApp.EmailSystemSupervisor,
start_sqs_worker: true
)
Creates initial configuration for email system.
Useful for initializing system with basic settings.
Examples
PhoenixKit.Emails.ApplicationIntegration.initialize_configuration()
Performs pre-flight checks for email system system.
Returns detailed report on system readiness.
Examples
iex> PhoenixKit.Emails.ApplicationIntegration.preflight_check()
%{
status: :ready,
checks: %{
email_enabled: true,
sqs_polling_enabled: true,
sqs_configuration: true,
aws_credentials: true
}
}
Checks if system is ready to start email system.
Examples
iex> PhoenixKit.Emails.ApplicationIntegration.ready_for_email_system?()
true
iex> PhoenixKit.Emails.ApplicationIntegration.ready_for_email_system?()
{:error, :email_disabled}
Returns child spec for email system supervisor.
Examples
supervisor_spec = PhoenixKit.Emails.ApplicationIntegration.supervisor_child_spec()
Returns only children for supervisor (without supervisor itself).
Use if you want to add email system processes to existing supervisor.
Examples
# In your supervisor module
def init(_opts) do
children = [
# ... your processes
] ++ PhoenixKit.Emails.ApplicationIntegration.supervisor_children()
Supervisor.init(children, strategy: :one_for_one)
end