A mailer concern to capture Postmark::InactiveRecipientError
and mark users as bounced.
Uses the postmark API to reactivate users. Includes a datatable report of all inactive users.
This is the 1.0 series of effective_postmark.
This requires Twitter Bootstrap 4.
Add to your Gemfile:
gem 'haml-rails'
gem 'effective_postmark'
Run the bundle command to install it:
bundle install
Add the following to your user model:
class User
effective_postmark_user
end
And add two database fields to your user model:
class AddEffectivePostmarkFieldsToUsers < ActiveRecord::Migration[7.0]
def change
add_column :users, :email_delivery_error, :string
add_column :users, :email_delivery_error_at, :datetime
end
end
Then migrate the database:
rake db:migrate
To add an admin alert when the user has been marked inactive with a link to reactivate
= effective_postmark_admin_alert(current_user, from: 'My Site')
To add an alert when the user has been marked inactive
= effective_postmark_alert(current_user, from: 'My Site')
If you want to include the inactive alert on the devise reset password page:
class Users::PasswordsController < Devise::PasswordsController
after_action(only: :create) do
if resource.email_delivery_error.present?
flash.delete(:notice)
flash[:danger] = view_context.effective_postmark_alert(resource, from: 'My Site', html_class: '')
end
end
end
Add a link to the admin report:
= nav_link_to 'Email Delivery Errors', effective_postmark.email_delivery_errors_admin_postmark_reports_path
Give the following permissions to your admin user:
can :admin, :effective_postmark
can(:postmark_reactivate, User) { |user| user.email_delivery_error.present? }
can(:index, Admin::ReportEmailDeliveryErrorsDatatable)
MIT License. Copyright Code and Effect Inc.
- Fork it
- 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
) - Bonus points for test coverage
- Create new Pull Request