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.
dependencies: email_opener: github: imdrasil/email_opener
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", "firstname.lastname@example.org") 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.
To implement own adapter include
EmailOpener::AbstractAdapter module and invoke in a delivery method
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
git checkout -b my-new-feature)
git commit -am 'Add some feature')
git push origin my-new-feature)
This library is inspired by ruby library letter_opener.