email_opener

forked from imdrasil/email_opener
Preview email in the default browser instead of sending it

Email Opener Build Status Latest Release Docs

Preview email in the default browser instead of sending it. This means you don't need to set up email delivery in your development environment, and you no longer need to worry about accidentally sending a test email to someone else's address.

Installation

  1. Add the dependency to your shard.yml:
dependencies:
  email_opener:
    github: imdrasil/email_opener
  1. Run shards install

Usage

Depending on used email library you need to implement adapter for EmailOpener. ATM this library is delivered with carbon adaptor on the board. Here is simple example of basic carbon base mailer:

require "email_opener/carbon_adapter"

MAILER_ADAPTER = EmailOpener::CarbonAdapter.new

abstract class ApplicationMailer < Carbon::Email
  getter email_subject : String, email_address : String

  from Carbon::Address.new("Sample App", "noreply@sample-app.com")
  to email_address
  subject email_subject
  settings.adapter = MAILER_ADAPTER

  def initialize
    @email_address = ""
    @email_subject = ""
  end
end

After email is sent HTML part is written to ./tmp/email_opener/rich.html and opened by default browser.

Development

To implement own adapter include EmailOpener::AbstractAdapter module and invoke in a delivery method #__deliver__ passing EmailOpener::Message with all information regarding email.

require "email_opener/abstract_adapter"

class OwnAdapter < SomeLibrary::Adapter
  include EmailOpener::AbstractAdapter

  def deliver(email)
    __deliver__(
      EmailOpener::Message.new(
        email.html_body,
        email.text_body,
        email.subject,
        email.from,
        mail.to,
        email.cc,
        email.bcc,
        email.reply_to
      )
    )
  end
end

Contributing

  1. Fork it (https://github.com/imdrasil/email_opener/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

This library is inspired by ruby library letter_opener.

Repository

email_opener

Owner
Statistic
  • 0
  • 0
  • 0
  • 1
  • 1
  • over 2 years ago
  • September 5, 2022
License

MIT License

Links
Synced at

Sun, 22 Dec 2024 03:45:11 GMT

Languages