discourse/app/controllers/admin/email_controller.rb

38 lines
1.1 KiB
Ruby

require_dependency 'email_renderer'
class Admin::EmailController < Admin::AdminController
def index
# For now, just show the ActionMailer settings
mail_settings = { delivery_method: ActionMailer::Base.delivery_method }
mail_settings[:settings] = case mail_settings[:delivery_method]
when :smtp
ActionMailer::Base.smtp_settings.map {|k, v| {name: k, value: v}}
when :sendmail
ActionMailer::Base.sendmail_settings.map {|k, v| {name: k, value: v}}
end
render_json_dump(mail_settings)
end
def test
params.require(:email_address)
Jobs.enqueue(:test_email, to_address: params[:email_address])
render nothing: true
end
def logs
@email_logs = EmailLog.limit(50).includes(:user).order('created_at desc').all
render_serialized(@email_logs, EmailLogSerializer)
end
def preview_digest
params.require(:last_seen_at)
renderer = EmailRenderer.new(UserNotifications.digest(current_user, since: params[:last_seen_at]))
render json: MultiJson.dump(html_content: renderer.html, text_content: renderer.text)
end
end