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

An adapter that sends email using the Postmark API.

For reference: Postmark API docs

Example

# config/config.exs
config :sample, Sample.Mailer,
  adapter: Swoosh.Adapters.Postmark,
  api_key: "my-api-key"

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

Example of sending emails using templates

This will use Postmark's withTemplate endpoint.

import Swoosh.Email

new()
|> from({"T Stark", "tony.stark@example.com"})
|> to({"Steve Rogers", "steve.rogers@example.com"})
|> put_provider_option(:template_id, "123456")
|> put_provider_option(:template_model, %{name: "Steve", email: "steve@avengers.com"})

You can also use template_alias instead of template_id, if you use Postmark's TemplateAlias feature.

When sending batch emails using :deliver_many do not mix emails using templates with non-template emails. The use of templates impacts the API endpoint used and so the batch email collection should be of the same format.

Example of sending emails with a tag

This will add a tag to the sent Postmark's email.

import Swoosh.Email

new()
|> from({"T Stark", "tony.stark@example.com"})
|> to({"Steve Rogers", "steve.rogers@example.com"})
|> subject("Hello, Avengers!")
|> put_provider_option(:tag, "some tag")

Provider Options

  • :metadata (map) - Metadata, add metadata to an email

  • :tag (string) - Tag, to categorize outgoing email

  • :template_id (string) - TemplateId, the template used when sending email and only required if :template_alias is not specified

  • :template_alias (string), TemplateAlias, the alias of a template used when sending email and only required if :template_id is not specified

  • :template_model (map), TemplateModel, a map of key/value field to be used in the HtmlBody, TextBody, and Subject field in the template

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.