View Source Swoosh.Adapters.Postmark (Swoosh v1.17.3)
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.
Note that you must include the :template_model
provider option even if your template
has no variables to interpolate. In this case you can pass an empty map:
put_provider_option(email, :template_model, %{})
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
: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 theHtmlBody
,TextBody
, andSubject
field in the template, required alongside:template_id
/:template_alias
: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.
Summary
Functions
Callback implementation for Swoosh.Adapter.deliver/2
.
Callback implementation for Swoosh.Adapter.deliver_many/2
.
Callback implementation for Swoosh.Adapter.validate_config/1
.
Callback implementation for Swoosh.Adapter.validate_dependency/0
.
Functions
Callback implementation for Swoosh.Adapter.deliver/2
.
Callback implementation for Swoosh.Adapter.deliver_many/2
.
Callback implementation for Swoosh.Adapter.validate_config/1
.
Callback implementation for Swoosh.Adapter.validate_dependency/0
.