smtp_max = 499 # máximo de destinatários do smtp while not destinatarios.empty? # enquanto há destinatários begin # envia para os primeiros destinatários ContatoMailer.deliver_email(destinatarios.first(smtp_max)) rescue Net::SMTPFatalError, Net::SMTPServerBusy, Net::SMTPUnknownError, Net::SMTPSyntaxError, Net::SMTPAuthenticationError, IOError, TimeoutError end destinatarios.slice!(0..smtp_max - 1) # retira da lista os destinatários enviados end
Neste exemplo assumimos que a variável destinatários é um vetor de e-mails. Ex: ["email1@dominio", "email2@dominio", "email3@dominio"]
Observação: Na minha aplicação, envio os e-mails em background através do plugin delayed job a fim de aumentar o conforto para o usuário e melhorar o desenpelho. Mas como realizar tarefas em background fica para outro post!
Comentários
Postar um comentário