Swoosh.Adapters.Postmark (Swoosh v1.19.8)
View SourceAn 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
endExample 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_aliasis not specified:template_alias(string),TemplateAlias, the alias of a template used when sending email and only required if:template_idis not specified:template_model(map),TemplateModel, a map of key/value field to be used in theHtmlBody,TextBody, andSubjectfield 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.