Search code examples
ruby-on-railsmailboxer

How to disable email notifications for specific users


Mailboxer is sending email notifications when the user has received a new message inside their inbox. This is great, however some users may not want to receive emails. How can I present a checkbox option in the view for the user that will disable the "new message" email notifications?

mailboxer.rb:

Mailboxer.setup do |config|

  #Configures if you applications uses or no the email sending for Notifications and Messages
  config.uses_emails = true

  #Configures the default from for the email sent for Messages and Notifications of Mailboxer
  config.default_from = "[email protected]"

  #Configures the methods needed by mailboxer
  config.email_method = :mailboxer_email
  config.name_method = :name

  #Configures if you use or not a search engine and wich one are you using
  #Supported enignes: [:solr,:sphinx]
  config.search_enabled = false
  config.search_engine = :solr
end

Solution

  • You could give the user a choice by doing:

    def mailboxer_email(object)
      self.email if self.preferences.receive_direct_message_by_email?
    end
    

    or

    def mailboxer_email(object)
        if self.no_email
        else
            nil
        end
    end
    

    You have to create a no_email attribute if going with second method.