2016-03-09 5 views
0

Я хочу отправить сообщение с моими продуктами пользователям, зарегистрированным в моем приложении пару раз в день. Вот метод почтовой программы я использую для этого:Rails 4 - почта не доставлена, если отправляется нескольким получателям (с помощью Sendgrid)

def notify_users(product) 
    @product 
    emails = Customer.signed_up.pluck(:email_address) 
    puts "EMAILS:" 
    puts emails.inspect # I see here, say, 5 email addresses 
    emails.each do |email| 
     unless email.blank? 
     puts "Sending to #{email}" # email is displayed here properly 
     mail(to: email, subject: "New products", from: '[email protected]') 
     end      
    end 

То, что я узнал, что если emails содержит только один адрес электронной почты, почта доставляется на адрес электронной почты. Но когда я отправляю электронное письмо по нескольким адресам электронной почты, обычно доставляется только последнее сообщение (поэтому, если emails продолжает ["[email protected]", "[email protected]", "[email protected]"]), поэтому электронное письмо доставляется только по адресу [email protected].

Почему? Попытка выяснить причину этого, но все же безуспешно.

+0

что использование Кодекса, если email.blank? просто попробуйте удалить его. –

ответ

0

Попробуйте так:

def send_notification_to_user(email) 
    puts "Sending to #{email}" # email is displayed here properly 
    mail(to: email, subject: "New products", from:'[email protected]') 
end 

def notify_users(product) 
    @product 
    emails = Customer.signed_up.pluck(:email_address) 
    puts "EMAILS:" 
    puts emails.inspect # I see here, say, 5 email addresses 
    emails.each do |email| 
    unless email.blank? 
     send_notification_to_user(email).deliver_now 
    end      
    end 
end 
Смежные вопросы