realmente enviar multiples correos

This commit is contained in:
f 2020-03-25 15:50:07 -03:00
parent 29947b4ed5
commit b0c2896f5f
No known key found for this signature in database
GPG key ID: 2AE5A13E321F953D
2 changed files with 31 additions and 27 deletions

View file

@ -3,6 +3,32 @@
# Envía los mensajes de contacto
class ContactJob < ApplicationJob
def perform(**args)
ContactMailer.with(**args).notify_usuaries.deliver_now
@params = args
# Enviar de a 10 usuaries para minimizar el riesgo que nos
# consideren spammers.
#
# TODO: #i18n. Agrupar usuaries por su idioma
usuaries.each_slice(10) do |u|
ContactMailer.with(**args.merge(usuaries: u, title: site.title))
.notify_usuaries.deliver_now
end
end
private
def site
@site ||= Site.find @params[:site_id]
end
# Trae solo les usuaries definitives para eliminar un vector de ataque
# donde alguien crea un sitio, agrega a muches usuaries y les envía
# correos.
#
# TODO: Mover a Site#usuaries
def usuaries
site.roles.where(rol: 'usuarie', temporal: false).includes(:usuarie)
.pluck(:email)
end
end

View file

@ -2,32 +2,10 @@
# Formulario de contacto
class ContactMailer < ApplicationMailer
# Enviar el formulario de contacto a todes les usuaries
# Enviar el formulario de contacto a les usuaries
def notify_usuaries
# Enviar de a 10 usuaries para minimizar el riesgo que nos
# consideren spammers.
#
# TODO: #i18n. Agrupar usuaries por su idioma
usuaries.each_slice(10) do |u|
mail to: u,
reply_to: params[:from],
subject: I18n.t('contact_mailer.subject', site: site.title)
end
end
private
def site
@site ||= Site.find params[:site_id]
end
# Trae solo les usuaries definitives para eliminar un vector de ataque
# donde alguien crea un sitio, agrega a muches usuaries y les envía
# correos.
#
# TODO: Mover a Site#usuaries
def usuaries
site.roles.where(rol: 'usuarie', temporal: false).includes(:usuarie)
.pluck(:email)
mail to: params[:usuaries],
reply_to: params[:from],
subject: I18n.t('contact_mailer.subject', site: params[:title])
end
end