* Fix email sender and url issues * Add proper tests * Add tests * Change DeviseMailer approach * ZFix devise test
32 lines
968 B
Ruby
32 lines
968 B
Ruby
class ApplicationMailer < ActionMailer::Base
|
|
layout "mailer"
|
|
# the order of importing the helpers here is important
|
|
# we want the application helpers to override the Rails route helpers should there be a name conflict
|
|
# an example is the user_url
|
|
helper Rails.application.routes.url_helpers
|
|
helper ApplicationHelper
|
|
helper AuthenticationHelper
|
|
|
|
before_action :use_custom_host
|
|
|
|
default(
|
|
from: -> { email_from("Community") },
|
|
template_path: ->(mailer) { "mailers/#{mailer.class.name.underscore}" },
|
|
)
|
|
|
|
def email_from(topic)
|
|
"#{SiteConfig.community_name} #{topic} <#{SiteConfig.email_addresses[:default]}>"
|
|
end
|
|
|
|
def generate_unsubscribe_token(id, email_type)
|
|
Rails.application.message_verifier(:unsubscribe).generate(
|
|
user_id: id,
|
|
email_type: email_type.to_sym,
|
|
expires_at: 31.days.from_now,
|
|
)
|
|
end
|
|
|
|
def use_custom_host
|
|
ActionMailer::Base.default_url_options[:host] = SiteConfig.app_domain
|
|
end
|
|
end
|