sendgrid com multiplos destinatarios

53 views
Skip to first unread message

Felipe Iketani

unread,
Jul 9, 2014, 10:02:08 PM7/9/14
to gur...@googlegroups.com
pessoal (em especial o paulo igor q sei que trabalha com sendgrid)

eu quero enviar varios emails ao mesmo tempo.

ex: quando alguem comenta em um bizu (no bizusafo!), eu quero que todos que comentaram no bizu recebam email de notificacao, uma especie de SEGUIR POST no facebook

OPCAO 1 (atual):

o jeito simples que funciona é dar um each assim:

User.commented_on_story.each do |user|
  Mailer.email(user).deliver
end

mas ai sao varias requisicoes SMTP pro sendgrid (como o bizusafo sendo mt pequeno, nao haveria tanto problema, eh tipo resolver um problema de performance do futuro)


OPCAO 2 (desejada, bulk email):

pigor, vc fez algo como na OPCAO 1, ou usou uma especie de bulk email pro send grid?

eu sei q eles tem bulk email, mas nao acho na documentacao

OPCAO 3 (não desejada, action mailer):

posso colocar um array no parametro TO do mailer, assim:

class Mailer
  def email
    mail(to: [no...@mail.com, no...@mail2.com])
  end
end

mas ai todo mundo vai ver os emails que estão no TO, o que não é desejado.

---

alguma ideia pessoal?

Posso deixar o bizusafo usando a OPCAO 1 por enquanto, mas queria saber se alguem ja implementou isso.

vlw!

Felipe Iketani

unread,
Jul 9, 2014, 10:05:36 PM7/9/14
to gur...@googlegroups.com
acho que isso aqui resolve:


adicionando essa linha no mailer:

headers["X-SMTPAPI"] = { :to => array_of_recipients }.to_json
eu so preciso achar um jeito de testar isso 

Fábio Miranda

unread,
Jul 9, 2014, 10:13:47 PM7/9/14
to gur...@googlegroups.com
dúvida: os emails são enviados asincronamente (com um delayed job ou similar)?

para a questão de envio pra multiplos destinatarios, bcc seria uma alternativa?

abs

Fábio Luiz Nery de Miranda
Software Engineer
@fabiolnm


--
You received this message because you are subscribed to the Google Groups "guru-pa" group.
To unsubscribe from this group and stop receiving emails from it, send an email to guru-pa+u...@googlegroups.com.
To post to this group, send email to gur...@googlegroups.com.
Visit this group at http://groups.google.com/group/guru-pa.
For more options, visit https://groups.google.com/d/optout.

Felipe Iketani

unread,
Jul 9, 2014, 10:40:12 PM7/9/14
to gur...@googlegroups.com
ainda nao eh assincrono nao... mas vai ser um dia quando precisar de fato... ainda nem testei rescue com o heroku, ta na minha todo list

talvez o bcc seja uma solucao... mas eu sou obrigado a colcoar um TO de qualquer maneira... ai quem receber o email ainda vai ver esse TO... mesmo que seja um nao-re...@mail.com

mas pode ser a solucao por agora

Fábio Miranda

unread,
Jul 9, 2014, 10:57:39 PM7/9/14
to gur...@googlegroups.com
nunca testei só com BCC, não sabia que o TO era obrigatório... 

no quesito fila, o delayed job me atende muito bem no Heroku, e é muito fácil de adicionar ao projeto. elimina de cara o problema de desempenho, e os emails podem ser agendados no loop mesmo [para a fila enviar em background].

Teria a questão de adicionar um dino para o worker (a partir do segundo dino, é pago). 

abs



Fábio Luiz Nery de Miranda
Software Engineer
@fabiolnm


--

Paulo Igor Alves Godinho

unread,
Jul 10, 2014, 7:30:44 AM7/10/14
to gur...@googlegroups.com
A solução Felipe seria usar um delayed_job como o Fabio mencionou, ou algo do tipo. Nunca fiz usando o bcc.

Paulo Igor.

caike

unread,
Jul 10, 2014, 9:29:10 AM7/10/14
to gur...@googlegroups.com
Pro caso do bizusafo, onde o envio de emails não é algo crítico, eu começaria com BCC e 1 request pro sendgrid. De repente até usando uma solução como https://github.com/brandonhilkert/sucker_punch
pra aliviar o request.

Essa não é uma solução viável pra casos onde o envio de emails é algo crítico. Por exemplo, em uma app de cobrança onde clientes recebem emails com faturas, por exemplo,
é importante ter um controle maior sobre cada um dos emails que é disparado. Se o cliente não receber algum dos emails de cobrança, pode causar um problema sério..

Mas não é o nosso caso, então baby steps ftw
Regards,
- Carlos
Reply all
Reply to author
Forward
0 new messages