2011-08-10 16 views
16

Próbuję utworzyć niestandardowy nagłówek wiadomości e-mail, aby korzystać z interfejsu API SendGrid.Tworzenie niestandardowych nagłówków wiadomości e-mail

Oto co robię - ale jej nie działa:

class Mailman < ActionMailer::Base 
    default :from => "[email protected]" 

    def send_message(name, email, message) 
    @name = name 
    @email = email 
    @message = message 

    mail(:to => '[email protected]', 
    :from => email, 
    :subject => "Message from the site", 
    :headers['X-SMTPAPI'] => "category: Drip Email" 
    ) 
    end 

end 

Każda pomoc mile widziana.

Dzięki, Adam

Odpowiedz

44

można użyć metody #headers z ActionMailer, mam edytować swój przykład, aby pokazać jak:

class Mailman < ActionMailer::Base 
    default :from => "[email protected]" 

    def send_message(name, email, message) 
    @name = name 
    @email = email 
    @message = message 

    headers['X-SMTPAPI'] = '{"category": "Drip Email"}' 

    mail(:to => '[email protected]', 
    :from => email, 
    :subject => "Message from the site" 
    ) 
    end 

end 

Alternatywnie, można przekazać jako argument hash (do #headers metody) za:

headers {"SPECIFIC-HEADER-1" => "value", "ANOTHER-HEADER" => "and so..."} 

mam nadzieję, że to może pomóc, a jeśli nie, to zawsze można sprawdzić szyn prowadnic: http://edgeguides.rubyonrails.org/action_mailer_basics.html.

+0

Dzięki Ricardo - odpowiedź była przed moją twarzą. Próbowałem tego i działałem. Potem napisałeś, co potwierdziło moje rozwiązanie. Dzięki jeszcze raz. – Northband

+0

Nice! Dzięki za opinie. –

+0

To nie działa dla mnie. Zobacz moją odpowiedź! –

2

Metoda nagłówków wymaga poprawnego JSON. Więc rozwiązanie Ricarda wymaga tę linię zamiast:

nagłówki [ 'X-SMTPAPI'] = '{ "category": "Drip Wyślij"}'

3

używam poniżej kodu i działa dobrze, po prostu przekonwertować hash JSON z to_json

headers['X-SMTPAPI'] = { 
    category: "Weekly Newsletter", 
    unique_args: { user_id: user.id } 
}.to_json 
1

Korzystanie z grup wypisanie się w grupy funkcjonalne hamowania w sendgrid, że stosuje się następującą składnię działał.

headers['X-SMTPAPI'] = '{"asm_group_id": 1111}' 
Powiązane problemy