SendgridNotification

SendgridNotification is engine of Ruby on Rails, and notification mail (e.g. account registration, logging in by new devise, reminder, etc...) sender and utility, using SendGrid API.

This provides mail utility models, migrations, and rake tasks.

Installation / Usage

First, add sendgird_notification in Gemfile

gem 'sendgrid_notification'
bundle install

Then, generate migration files and migrate

bin/rails sendgrid_notification_engine:install:migrations
bin/rails db:migrate

Generate and edit controllers for NotificationMail CRUD

...

Create NotificationMail record. key = 'example'

...

And send the mail

...

Oops. It lacks SendGrid API configuration. Get API key from sendgrid.com and set it ENV['SENDGRID_API_KEY']

...

Make subclasses for each notification_mail key

...

Validate mail template has right parameter name

...

Configuration

Name Description Default Value
config.sendgrid_notification.api_key SendGrid API Key ENV['SENDGRID_API_KEY']
config.sendgrid_notification.mail_from FROM address of notification mail ENV['SENDGRID_MAIL_FROM']
config.sendgrid_notification.mail_from_name FROM name of notification mail ENV['SENDGRID_MAIL_FROM_NAME']
config.sendgrid_notification.mailer Mailer class name (by string). usually no need to change "SendgridNotification::SendgridMailer"

Rake tasks

Task Description ENV/Parameter
sendgrid_notification:send Send mail TO=[recipient email address] KEY=[mail type key] ... and mail parameters
sendgrid_notification:status:autoupdate Update status from previous autoupdate task
sendgrid_notification:status:retrieve Only retrieve suppression statuses in start..end start=[datetime] end=[datetime]
sendgrid_notification:status:update Retrieve suppression status and update record start=[datetime] end=[datetime]
sendgrid_notification:testmail:init Create notification_mails test record. default key = "_test"
sendgrid_notification:testmail:send Send testmail TO=[recipient email address] [body=body]

Contributing

Contribution directions go here.

License

The gem is available as open source under the terms of the MIT License.