Skip to content
A Bamboo adapter for Postmark
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
config
lib/bamboo
test
.gitignore
CHANGELOG.md
LICENSE
README.md
mix.exs
mix.lock

README.md

Bamboo.PostmarkAdapter

CircleCI

A Postmark Adapter for the Bamboo email library.

Installation

The package can be installed as:

  1. Add bamboo_postmark to your list of dependencies in mix.exs:
def deps do
  # Get from hex
  [{:bamboo_postmark, "~> 0.5"}]
  # Or use the latest from master
  [{:bamboo_postmark, github: "pablo-co/bamboo_postmark"}]
end
  1. Ensure bamboo is started before your application:
def application do
  [applications: [:bamboo]]
end
  1. Add your Postmark API key to your config

You can find this key as Server API token under the Credentials tab in each Postmark server.

# In your configuration file:
#  * General configuration: config/config.exs
#  * Recommended production only: config/prod.exs

config :my_app, MyApp.Mailer,
      adapter: Bamboo.PostmarkAdapter,
      api_key: "my_api_key"
  1. Follow Bamboo Getting Started Guide

Using templates

The Postmark adapter provides a helper module for setting the template of an email.

Example

defmodule MyApp.Mail do
  import Bamboo.PostmarkHelper

  def some_email do
    email
    |> template("id_of_template",
                %{name: "John Doe", confirm_link: "http://www.link.com"})
  end
end

Exception Warning

Postmark templates include a subject, HTML body and text body and thus these shouldn't be included in the email as they will raise an API exception.

email
|> template("id", %{value: "Some value"})
|> subject("Will raise exception")
|> html_body("<p>Will raise exception</p>")
|> text_body("Will raise exception")

Tagging emails

The Postmark adapter provides a helper module for tagging emails.

Example

defmodule MyApp.Mail do
  import Bamboo.PostmarkHelper

  def some_email do
    email
    |> tag("some-tag")
  end
end

Sending extra parameters

You can send other extra parameters to Postmark with the put_param helper.

See Postmark's API for a complete list of parameters supported.

email
|> put_param("TrackLinks", "HtmlAndText")
|> put_param("TrackOpens", true)
|> put_param("Attachments", [
  %{
    Name: "file.txt",
    Content: "/some/file.txt" |> File.read!() |> Base.encode64(),
    ContentType: "txt"
  }
])

Changing the underlying request configuration

You can specify the options that are passed to the underlying HTTP client hackney by using the request_options key in the configuration.

Example

config :my_app, MyApp.Mailer,
      adapter: Bamboo.PostmarkAdapter,
      api_key: "my_api_key",
      request_options: [recv_timeout: 10_000]

JSON support

Bamboo comes with JSON support out of the box, see Bamboo JSON support.

You can’t perform that action at this time.