많은 양의 이메일을 보내야합니다. 이 경우 이메일을 구축하는 것은 매우 무거운 작업이다, 그래서 나는 캐시 및 재사용하기 위해 노력하고있어 :ActionMailer에서 동일한 이메일을 다시 보내십시오.
mail = Rails.cache.fetch("newsletters/#{newsletter.id}") do
NewsletterMailer.products(newsletter)
end
recipients.find_each do |user|
mail.to = user.email
mail.deliver
end
을하지만이 코드 만 먼저 수신자가 이메일을 수신합니다. 동일한 전자 메일을 두 번 이상 보낼 수없는 것 같습니다. 내가 DUP 시도보다 :
recipients.find_each do |user|
m = mail.dup
m.to = user.email
m.deliver
end
같은 결과.
m = Marshal.load(Marshal.dump(mail))
그런 다음 이메일 모든받는 사람에게 배달됩니다 : 그냥 내가 시도 대신 DUP의 가정을 확인합니다.
제 궁금한 점은 어떻게 "재설정"(또는 그와 같은) 이메일을 보내고 다시 보낼 수 있습니까?
ActionMailer 버전은 문제가 이메일 같은 '메시지 ID'헤더를하였습니다이었다 3.1.12
UPD
입니다. 개발 중에 나는 GMail을 사용하고 있었고 정확히 ActionMailer 나 Gmail이 보내지 않았다는 것을 모릅니다. 지금은 테스트 할 기회가 없습니다. 어쨌든 같은 '메시지 ID가'잘못 그래서 각 이메일에 대한 새로운 헤더를 생성하는 add_message_id
추가 :
recipients.find_each do |user|
mail.add_message_id
mail.to = user.email
mail.deliver
end
어쩌면 누군가가 도움이 찾을 것 또는 사람이 명확한 설명을 제공 할 수 있습니다.
피어 앨런의 답변을 시도하지 않았습니다. 그러나 내가 이메일에있는 데이터는 이메일 without using templates을 보내려고 수있는 각 수신자에 대한 변경이 필요하지 않는 가정이
I 업데이트 질문 여기에서이다 –