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

An adapter that sends email using the Postmark API.

For reference: Postmark API docs

example

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

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

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

Provider Options

  • :message_stream (string) – MessageStream, configure the message stream for the email

  • :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

  • :track_opens (boolean) - TrackOpens, specify if open tracking needs to be enabled for this email.

  • :track_links (string) - TrackOpens, specify if link tracking needs to be enabled for this email. Valid values are: None, HtmlAndText, HtmlOnly, TextOnly

  • :inline_css (boolean) - InlineCss, specify if Postmark should apply the style blocks as inline attributes to the rendered HTML content. Default is true.

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.