bamboo v0.6.0 Bamboo.DeliverLaterStrategy behaviour
Behaviour for delivering emails with Bamboo.Mailer.deliver_later/1
Use this behaviour to create strategies for delivering later. You could make a strategy using a GenServer, a background job library or whatever else you decide.
Bamboo ships with two strategies:
Example of setting custom strategies
config :my_app, MyApp.Mailer,
adapter: Bamboo.MandrillAdapter, # or whatever adapter you want
deliver_later_strategy: MyCustomStrategy
Example of creating a custom strategy for delivering later using Task.async
defmodule Bamboo.TaskAsyncStrategy do
@behaviour Bamboo.DeliverLaterStrategy
# This is a strategy for delivering later using Task.async
def deliver_later(adapter, email, config) do
Task.async fn ->
# Always call deliver on the adapter so that the email is delivered.
adapter.deliver(email, config)
end
end
end