marten_mailgun_emailing

Version, currently 0.1.01 version
  • 0.1.0latestFeb 11, 2023

github.com/martenframework/marten-mailgun-emailing

A Mailgun emailing backend for the Marten web framework.

4 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  marten_mailgun_emailing:
    github: martenframework/marten-mailgun-emailing
    version: ~> 0.1.0

Then run:

shards install

shard.yml

Crystal
>= 1.4.0
License
MIT
Author
Morgan Aubert

Dependencies

Runtime Dependencies

  • marten>= 0.2.0github: martenframework/marten

Development Dependencies

  • ameba~> 1.1.0github: crystal-ameba/amebadev
  • webmock*github: manastech/webmock.cr, branch: masterdev

README

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.