Receivex
Package to deal with inbound email webhooks for several providers. Right now Mailgun and Mandrill are supported.
Installation
If available in Hex, the package can be installed
by adding receivex
to your list of dependencies in mix.exs
:
def deps do
[
{:receivex, "~> 0.1.0"}
]
end
Place the Receivex plug before the Plug.Parsers. This is necessary for access to the raw body for checking the webhook signatures in some services
Example configuration for Mandrill
plug(Receivex,
path: "/_incoming",
adapter: Receivex.Adapter.Mandrill,
adapter_opts: [
secret: "i8PTcm8glMgsfaWf75bS1FQ",
url: "http://example.com"
],
handler: Example.Processor
)
Example configuration for Mailgun
plug(Receivex,
path: "/_incoming",
adapter: Receivex.Adapter.Mailgun,
adapter_opts: [
api_key: "some-key"
],
handler: Example.Processor
)
Example processor
defmodule Example.Processor do
@behaviour Receivex.Handler
def process(%Receivex.Email{} = mail) do
IO.inspect(mail)
end
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/receivex.