Automatically unsubscribe from emails in Rails.
MIT License
Automatically unsubscribe from emails in Rails.
Add this line to your application's Gemfile:
gem 'unsubscribe'
And then execute:
$ bundle
Or install it yourself as:
$ gem install unsubscribe
Then run the installation commands:
rails g unsubscribe:install
rails unsubscribe:install:migrations
rails db:migrate
include Unsubscribe::Owner
to a Model
. The Model
must have an email
column.class User < ApplicationRecord
include Unsubscribe::Owner
end
User.first.mailer_subscriptions
# => #<ActiveRecord::Associations::CollectionProxy [#<Unsubscribe::MailerSubscription>, #<Unsubscribe::MailerSubscription>] >
User.first.subscribed_to_mailer? "MarketingMailer"
# => true/false
User.first.to_sgid_for_mailer_subscription
# => #<SignedGlobalID:123 ...>
include Unsubscribe::Mailer
to a Mailer
.unsubscribe_settings
to set a name
and description
. This will be used in the unsubscribe page.mail to:
to @recipient.email
. The @recipient
is an instance of whatever Class include Unsubscribe::Owner
was added to.class MarketingMailer < ApplicationMailer
include Unsubscribe::Mailer
unsubscribe_settings name: "Marketing Emails", description: "Updates on promotions and sales."
def promotion
mail to: @recipient.email
end
end
Mailer
with a recipient
parameter. MarketingMailer.with(
recipient: User.first
).promotion.deliver_now
Unsubscribe::MailerSubscription.first.action
# => "Unsubscribe from"/"Subscribe to"
Unsubscribe::MailerSubscription.first.call_to_action
# => "Unsubscribe from Marketing Emails"/"Subscribe to Marketing Emails"
Unsubscribe::MailerSubscription.first.description
# => "Updates on promotions and sales."
Unsubscribe::MailerSubscription.first.name
# => "Marketing Emails"
@unsubscribe_url
link to the Mailer
.<%= link_to "Unsubscribe", @unsubscribe_url %>
Run rails g unsubscribe:views
if you want to modify the existing templates.
The language used for Unsubscribe::MailerSubscription#action
can be translated.
# config/locales/en.yml
en:
unsubscribe:
action:
subscribe: "Subscribe to"
unsubscribe: "Unsubscribe from"
If you'd like to open a PR please make sure the following things pass:
bin/rails test
bundle exec standardrb
The gem is available as open source under the terms of the MIT License.