2015-10-07 2 views
0

Я запускаю приложение Ruby on Rails 3.2, в котором пользователи могут, среди прочего, отправлять электронные письма своим клиентам, которые представлены различными способами в базе данных.Позволяет пользователю отправлять электронную почту на многие разные динамические адреса

В зависимости от выбора пользователя, это может быть динамический список из 50-200 адресов электронной почты. Список может отличаться от дня к дню в зависимости от множества факторов. Настройка фиксированного списка рассылки у поставщика электронной почты не является вариантом.

Что было бы самым лучшим способом разоблачить эту функцию для моих пользователей?

В настоящее время я запускаю платный SMTP-сервер за приложением, которое обрабатывает все электронные письма, но у меня были проблемы с помехами SPAM, когда я пытаюсь отправить через них один email с 50-200 BCC.

Я также попытался предоставить пользователям возможность отправлять электронную почту через своих собственных почтовых клиентов по ссылке mailto:. Однако, в зависимости от браузера, используемой версии Windows и почтового клиента, ссылка mailto: не работает, если она превышает определенное количество символов или адресов.

Что было бы лучше всего решить эту проблему и предложить эту функцию моим клиентам?

+0

Вы можете попробовать mandrill api для массовых рассылок по электронной почте –

ответ

0

Наполнение вашего поля BCC электронными письмами является верным способом получения помечены как спам. Погуглить «BCC spam» будет выделить эту проблему:

Лучше отправить отдельное сообщение для каждого получателя, а не использовать несколько адресов в поле BCC, потому что многие спам-фильтры (и многие поставщики услуг Интернета) автоматически флаг несколько получателей, как спам.

Вместо этого проведите через выбранных получателей и отправьте одно электронное письмо, как указано в this answer.

def calling_method 
    @recipients.each do |recipient| 
    send_email(recipient.email, recipient.name) 
    end 
end 

def send_email(recipient_email, recipient_name) 
    mail(to: recipient_email, subject: recipient_name) 
end 
Смежные вопросы