2012-03-02 13 views
5

Şu anda ActionMailer'dan e-posta göndermekle ilgili bir sorun yaşıyorum. Hangi maillerden olursa olsun, sistemimden gönderilen her e-postaya özel bir başlık eklemeye çalışıyorum. Üstbilgi, e-postayı hangi kişiyle aldığına dair bilgi içerir, bu nedenle posta göndericisinin varsayılanlarında ayarlanamaz, ancak her bir e-postada bu üstbilgiyi ayarlamanız gerekmekten kaçınmak isterim.Mail :: Başlık mesajlarını değiştirme ActionMailer tarafından döndürülen ileti

Burada şu anda kurdunuz ne:

candidates.each do |c| 
    mail = mailer_class.send(action.to_sym, c, params) 
    recip = email_recipients.create!(:contact => c, :subject => mail.subject) 

    mail.headers['X-SMTPAPI'] = {:unique_args => {:email_recipient_id => recip.id, :database => Apartment::Database.current_database }, 
           :category => "#{mailer}-#{action}" }.to_json 

    mail.deliver 
    end 

sorundur, herhangi bir değişiklik görünmüyor bir Mail::Message ait headers karma bir tuşa ayarı.

m.header = m.header.to_s + "\nBlah: Blah" 

Ama dürüst olmak gerekirse, bu biraz hacky hissediyor:

elle şöyle başlık özelliğini ayarlayarak bir başlık ayarlamak için bir yol buldum. Bunu gerçekleştirmek için daha iyi bir desen biliyor mu? Eğer başlatıcılar

dizin eklemek görünüyor yüklenen bir dosyayı varsayılan başlıklarıyla ActionMailer :: Base genişleten bir sınıf oluşturabilir

+0

SMTP başlıklarına json gönderiyor musunuz? – farnoy

+0

Evet. Biraz garip ama kullanıyorum bir sağlayıcı tarafından belirlenir. –

cevap

0

mailer_defaults.rb

gibi
class ActionMailer::Base 
    def defaults 
     # header HERE 
    end 
end 

Bu, sizi doğru yöne götürmelidir

İlgili konular