SparkPost / elixir-sparkpost

SparkPost client library for Elixir https://developers.sparkpost.com
Apache License 2.0
44 stars 14 forks source link
elixir email sparkpost

Sign up for a SparkPost account and visit our Developer Hub for even more content.

SparkPost Elixir Library

Travis CI Coverage Status

The official Elixir package for the SparkPost API.

Capabilities include:

Installation

  1. Add sparkpost and ibrowse to your list of dependencies in mix.exs:

    def deps do
    [
      {:sparkpost, "~> 0.5.1"}
    ]
    end
  2. Ensure sparkpost is started before your application:

    def application do
    [applications: [:sparkpost]]
    end
  3. Update your dependencies:

    $ mix deps.get

Usage

Configuration

In your config/config.exs file:

config :sparkpost, api_key: "YOUR-API-KEY"

Option 1: Convenience

defmodule MyApp.Example do
  def send_message do
    SparkPost.send to: "you@example.com",
         from: "elixir@sparkpostbox.com",
         subject: "Sending email from Elixir is awesome!",
         text: "Hi there!",
         html: "<p>Hi there!</p>"
  end
end

Option 2: Full SparkPost API

defmodule MyApp.Example do
  alias SparkPost.{Content, Recipient, Transmission}

    def send_message do
    Transmission.send(%Transmission{
        recipients: [ "you@example.com" ],
        content: %Content.Inline{
          subject: "Sending email from Elixir is awesome!",
          from: "elixir@sparkpostbox.com", 
          text: "Hi there!",
          html: "<p>Hi there!</p>"
        }
    })
  end
end

Start your app and send a message:

    $ iex -S mix
    iex> MyApp.Example.send_message
    {:ok, ...}

Contribute

We welcome your contributions! See CONTRIBUTING.md for details on how to help out.

Change Log

See ChangeLog here