realmente enviar multiples correos
This commit is contained in:
parent
29947b4ed5
commit
b0c2896f5f
2 changed files with 31 additions and 27 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue