email_opener
forked from imdrasil/email_openerEmail Opener
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
- Add the dependency to your
shard.yml
:
dependencies:
email_opener:
github: imdrasil/email_opener
- 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
- Fork it (https://github.com/imdrasil/email_opener/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Roman Kalnytskyi - creator and maintainer
This library is inspired by ruby library letter_opener.
email_opener
- 0
- 0
- 0
- 1
- 1
- about 2 years ago
- September 5, 2022
MIT License
Thu, 07 Nov 2024 18:35:27 GMT