View Source Swoosh.Adapters.AmazonSES (Swoosh v1.6.0)

An adapter that sends email using the Amazon Simple Email Service (SES) Query API.

This email adapter makes use of the Amazon SES SendRawEmail action and generates a SMTP style message containing the information to be emailed. This allows for greater more customizable email message and ensures the capability to add attachments. As a result, however, the :gen_smtp dependency is required in order to correctly generate the SMTP message that will be sent.

Ensure sure you have the dependency added in your mix.exs file:

def deps do
    {:swoosh, "~> 1.0"},
    {:gen_smtp, "~> 1.0"}

See also:

Amazon SES Query Api Docs

Amazon SES SendRawEmail Documentation


# config/config.exs
config :sample, Sample.Mailer,
  adapter: Swoosh.Adapters.AmazonSES,
  region: "region-endpoint",
  access_key: "aws-access-key",
  secret: "aws-secret-key"

# lib/sample/mailer.ex
defmodule Sample.Mailer do
  use Swoosh.Mailer, otp_app: :sample

Using with tags and configuration set

import Swoosh.Email

|> from("guybrush.threepwood@pirates.grog")
|> to("")
|> subject("Mighty Pirate Newsletter")
|> text_body("Hello")
|> put_provider_option(:tags, [%{name: "name1", value: "test1"}])
|> put_provider_option(:configuration_set_name, "configuration_set_name1")

Provider Options

  • :tags (list[map]) - a list of key/value pairs of a tag
  • :configuration_set_name (string) - the name of the configuration set
  • :security_token (string) - temporary security token obtained through AWS Security Token Service (AWS STS)

IAM role

In case you use IAM role for authenticating AWS requests, you can fetch temporary :access_key and :secret_key from that role, but you also need to include additional X-Amz-Security-Token header to that request.

You can do that by adding :security_token to :provider_options.

Link to this section Summary

Link to this section Functions

Callback implementation for Swoosh.Adapter.validate_config/1.

Callback implementation for Swoosh.Adapter.validate_dependency/0.