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

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 tempaltes 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")

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.