mirror of
https://0xacab.org/sutty/sutty
synced 2025-01-19 19:43:38 +00:00
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
|
# Envía los mensajes de contacto
|
||||||
class ContactJob < ApplicationJob
|
class ContactJob < ApplicationJob
|
||||||
def perform(**args)
|
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
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,32 +2,10 @@
|
||||||
|
|
||||||
# Formulario de contacto
|
# Formulario de contacto
|
||||||
class ContactMailer < ApplicationMailer
|
class ContactMailer < ApplicationMailer
|
||||||
# Enviar el formulario de contacto a todes les usuaries
|
# Enviar el formulario de contacto a les usuaries
|
||||||
def notify_usuaries
|
def notify_usuaries
|
||||||
# Enviar de a 10 usuaries para minimizar el riesgo que nos
|
mail to: params[:usuaries],
|
||||||
# consideren spammers.
|
reply_to: params[:from],
|
||||||
#
|
subject: I18n.t('contact_mailer.subject', site: params[:title])
|
||||||
# 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)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue