PhoenixKit.Emails.SQSProcessor (phoenix_kit v1.6.16)
View SourceProcessor for handling email events from AWS SQS messages.
This module is responsible for:
- Parsing SNS messages from SQS
- Processing different types of SES events
- Updating email statuses in the database
- Creating event records for tracking
Supported Event Types
- Send - Email send confirmation through SES
- Delivery - Successful email delivery to recipient
- Bounce - Email bounce (hard/soft bounce)
- Complaint - Spam complaint
- Open - Email open (AWS SES tracking)
- Click - Link click in email
Processing Architecture
SQS Message → SNS Parsing → Event Processing → Database UpdateSecurity
- Message structure validation
- Event type checking
- Protection against event duplication
- Graceful handling of invalid data
Examples
# Parse SNS message
{:ok, event_data} = SQSProcessor.parse_sns_message(sqs_message)
# Process event
{:ok, result} = SQSProcessor.process_email_event(event_data)
Summary
Functions
Parses SNS message from SQS into event data structure.
Processes email event and updates corresponding database records.
Functions
Parses SNS message from SQS into event data structure.
Parameters
sqs_message- message from SQS queue
Returns
{:ok, event_data}- successfully parsed event data{:error, reason}- parsing error
Examples
iex> SQSProcessor.parse_sns_message(sqs_message)
{:ok, %{
"eventType" => "delivery",
"mail" => %{"messageId" => "abc123"},
"delivery" => %{"timestamp" => "2025-09-20T15:30:45.000Z"}
}}
Processes email event and updates corresponding database records.
Parameters
event_data- event data from SNS
Returns
{:ok, result}- successful processing{:error, reason}- processing error
Examples
iex> SQSProcessor.process_email_event(event_data)
{:ok, %{type: "delivery", log_id: 123, updated: true}}