mirror of
https://github.com/heartcombo/devise.git
synced 2026-04-06 03:01:21 -04:00
48 lines
1.4 KiB
Ruby
48 lines
1.4 KiB
Ruby
class Notifier < ::ActionMailer::Base
|
|
cattr_accessor :sender
|
|
|
|
# Deliver confirmation instructions when the user is created or its email is
|
|
# updated, and also when confirmation is manually requested
|
|
def confirmation_instructions(record)
|
|
setup_mail(record, :confirmation_instructions)
|
|
end
|
|
|
|
# Deliver reset password instructions when manually requested
|
|
def reset_password_instructions(record)
|
|
setup_mail(record, :reset_password_instructions)
|
|
end
|
|
|
|
private
|
|
|
|
# Configure default email options
|
|
def setup_mail(record, key)
|
|
subject translate(record, key)
|
|
from self.class.sender
|
|
recipients record.email
|
|
sent_on Time.now
|
|
content_type 'text/html'
|
|
body underscore_name(record) => record, :resource => record
|
|
end
|
|
|
|
# Setup subject namespaced by model. It means you're able to setup your
|
|
# messages using specific resource scope, or provide a default one.
|
|
# Example (i18n locale file):
|
|
#
|
|
# en:
|
|
# devise:
|
|
# notifier:
|
|
# confirmation_instructions: '...'
|
|
# user:
|
|
# notifier:
|
|
# confirmation_instructions: '...'
|
|
def translate(record, key)
|
|
I18n.t(:"#{underscore_name(record)}.#{key}",
|
|
:scope => [:devise, :notifier],
|
|
:default => key)
|
|
end
|
|
|
|
def underscore_name(record)
|
|
@underscore_name ||= record.class.name.underscore.to_sym
|
|
end
|
|
end
|