EnqueueMail

This library provides enqueueing mail to MailQueue in Elixir.

Installation

The package can be installed by adding enqueue_mail to your list of dependencies in mix.exs:

def deps do
  [
    {:enqueue_mail, "~> 0.1.0"}
  ]
end

Configuration

Tha server has to be pointed with MailQueue. The rest of settings have to be the same with MailQueue.

config :enqueue_mail, EnqueueMail,
  amqp_server: "amqp://app:app@localhost",
  exchange:    "gen_server_mail_exchange",
  queue:       "gen_server_mail_queue",
  queue_error: "gen_server_mail_queue_error"

Data Format:

message Email {
  string from = 1;
  string to = 2; 
  string subject = 3;
  string text_body = 4; 
  string html_body = 5; 
}

Usage

  def enqueue_mail(from, to, subject, text_body, html_body) do
    Email.new(
      from: from,
      to: to,
      subject: subject,
      text_body: text_body,
      html_body: html_body)
    |> Email.encode()
    |> EnqueueMail.send_mail()
  end

eex can be used for text_body and/or html_body.

for exapmple:

html_body = EEx.eval_file(< eex template file >, [from: from,  email: email, title: title,  content: content])
  end

References:

Licence:

[MIT]

Author

Katsuyoshi Yabe