Current section

Files

Jump to
straw_hat_mailer lib straw_hat_mailer.ex
Raw

lib/straw_hat_mailer.ex

defmodule StrawHat.Mailer do
@moduledoc """
Check `Swoosh.Mailer` documentation for learn more about this module.
"""
use Swoosh.Mailer, otp_app: :straw_hat_mailer
@typedoc """
The identifier of the owner. We recommend to use combinations
of `system + resource id`. For example: `"system_name:resource_id"` or any other
combination. The reason behind is that if you use just some resource id,
example just `"1"`, you can't use more than one resource that owns the
template with the same `id`.
"""
@type owner_id :: String.t()
@doc """
Send an email asynchronous.
It use `StrawHat.Mailer.deliver/1` inside `Task.start/1`.
"""
@spec deliver_later(Swoosh.Email.t(), keyword) :: {:ok, pid}
def deliver_later(email, config \\ []) do
Task.start(fn -> deliver(email, config) end)
end
end