Skip to content

A Mailgun emailing backend for the Marten web framework.

License

Notifications You must be signed in to change notification settings

martenframework/marten-mailgun-emailing

Repository files navigation

Marten Mailgun Emailing

CI CI

Marten Mailgun Emailing provides a Mailgun backend that can be used with Marten web framework's emailing system.

Installation

Simply add the following entry to your project's shard.yml:

dependencies:
  marten_mailgun_emailing:
    github: martenframework/marten-mailgun-emailing

And run shards install afterward.

Configuration

First, add the following requirement to your project's src/project.cr file:

require "marten_mailgun_emailing"

Then you can configure your project to use the Mailgun backend by setting the corresponding configuration option as follows:

Marten.configure do |config|
  config.emailing.backend = MartenMailgunEmailing::Backend.new(
    api_key: ENV.fetch("MAILGUN_API_KEY"),
    sender_domain: ENV.fetch("MAILGUN_SENDER_DOMAIN")
  )
end

The MartenMailgunEmailing::Backend class needs to be initialized using a Mailgun API key and a Mailgun sender domain. You should ensure that these values are kept secret and that they are not hardcoded in your config files.

If needed, it should be noted that you can also change the Mailgun API endpoint URL (whose default value is https://api.mailgun.net). To do so, you can use set the api_endpoint argument accordingly when initializing your backend object:

Marten.configure do |config|
  config.emailing.backend = MartenMailgunEmailing::Backend.new(
    api_key: ENV.fetch("MAILGUN_API_KEY"),
    sender_domain: ENV.fetch("MAILGUN_SENDER_DOMAIN"),
    api_endpoint: "https://api.eu.mailgun.net"
  )
end

Authors

Morgan Aubert (@ellmetha) and contributors.

License

MIT. See LICENSE for more details.