Add ActionMailer to inform admins about new screenshots

This version only informs Christoph as a test
This commit is contained in:
Christoph Haas 2021-02-25 02:43:14 +01:00
parent ae597a6235
commit 1f9187e35c
9 changed files with 55 additions and 1 deletions

View file

@ -123,6 +123,11 @@ class PackagesController < ApplicationController
# if @invalid_images… # if @invalid_images…
# ' #{image.image_file_name} (#{image.errors[:image].join(' and ')}) # ' #{image.image_file_name} (#{image.errors[:image].join(' and ')})
# Inform the admins about the upload
if @valid_images.any?
AdminMailer.with(package: @package).new_uploads_email.deliver_now
end
# Rails does not allow dots in the URL. So we cannot use the 'respond_to' # Rails does not allow dots in the URL. So we cannot use the 'respond_to'
# and 'format' ways to handle parameters. Instead the 'returns' parameters # and 'format' ways to handle parameters. Instead the 'returns' parameters
# is set in routes.rb to signal that this method was called by AJAX. # is set in routes.rb to signal that this method was called by AJAX.

View file

@ -0,0 +1,9 @@
class AdminMailer < ApplicationMailer
default from: 'notifications@mentors.debian.net'
def new_uploads_email
@package = params[:package]
#@url = 'http://example.com/login'
mail(to: 'email@christoph-haas.de', subject: 'Please moderate new screenshot uploads')
end
end

View file

@ -0,0 +1,5 @@
class ApplicationMailer < ActionMailer::Base
default from: 'from@example.com'
layout 'mailer'
end

View file

@ -0,0 +1,7 @@
test
package is <%= @package.name %>
link would be <%= url_for @package %>
goodbye

View file

@ -0,0 +1 @@
= yield

View file

@ -32,7 +32,16 @@ Rails.application.configure do
config.active_storage.service = :local config.active_storage.service = :local
# Don't care if the mailer can't send. # Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = false config.action_mailer.raise_delivery_errors = true
config.action_mailer.smtp_settings = {
address: 'localhost',
port: 25,
enable_starttls_auto: false
}
config.action_mailer.default_url_options = {
host: "screenshots.debian.net",
protocol: 'https'
}
config.action_mailer.perform_caching = false config.action_mailer.perform_caching = false

View file

@ -70,6 +70,16 @@ Rails.application.configure do
config.action_mailer.perform_caching = false config.action_mailer.perform_caching = false
config.action_mailer.smtp_settings = {
address: 'localhost',
port: 25,
enable_starttls_auto: false
}
config.action_mailer.default_url_options = {
host: "screenshots.debian.net",
protocol: 'https'
}
# Ignore bad email addresses and do not raise email delivery errors. # Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors.
# config.action_mailer.raise_delivery_errors = false # config.action_mailer.raise_delivery_errors = false

View file

@ -0,0 +1,4 @@
# one:
# record: name_of_fixture (ClassOfFixture)
# name: content
# body: <p>In a <i>million</i> stars!</p>

View file

@ -0,0 +1,4 @@
# Preview all emails at http://localhost:3000/rails/mailers/admin_mailer
class AdminMailerPreview < ActionMailer::Preview
end