2016-04-23 11 views
0

Ich migriere von Mandrill zu SparkPost und habe ein Rails-Backend.Migration von Mandrill zu SparkPost - Rails-API

Die Datenstruktur Im Moment habe ich die folgende -

message = { 
    subject: "Welcome", 
    merge_vars: [{ 
    rcpt: user.email, 
    vars: email_vars(user) 
    }], 
    to:[{ 
    email: user.email, 
    name: user.name 
    }], 
    track_clicks: true, 
    track_opens: true, 
    inline_css: true, 
} 

Dieser sendet die Antwort -

m = Mandrill::API.new 
template_content = [] 
result = m.messages.send_template 'email-confirmation', template_content, message 

Brauche ich überhaupt die JSON-Datenstruktur zu aktualisieren? Sobald JSON gut ist, wie gebe ich Werte an bestimmte Vorlage mit SparkPost?

ich versucht, die folgenden -

m = SparkPost::Client.new() 
template_content = [] 
result = m.messages.send_template 'email-confirmation', template_content, message 

Aber ich habe auch gesehen -

host = 'https://api.sparkpost.com' 

SparkPost::Request.request("#{host}/api/v1/transmissions", API_KEY, { 
    recipients: [ 
    { 
     address: { email: user.email }, 
     substitution_data: { 
     first_name: user.name, 
     email: user.email 
     } 
    } 
    ], 
    content: { 
    template_id: 'email-confirmation' 
    }, 
    substitution_data: { 
    name: user.name, 
    email: user.email 
    } 
}) 

Schätzen Sie die Hilfe!

Antwort

1

Wenn Sie das offizielle Juwel verwenden, hat es eine bequeme Methode namens send_payload, die Sie verwenden können, um eine vorbereitete Nutzlast zu senden.

Die substitution_data innerhalb recipients Sammlung ist eine pro Empfänger Substitution.

Zum Beispiel habe ich folgende Vorlagen.

template

unter Verwendung dieser Vorlage zu senden, das ist mein kompletter Code aussehen wird

sp = SparkPost::Client.new() # pass api key or get api key from ENV 

payload = { 
    recipients: [ 
    { 
     address: { email: 'RECIPIENT1' }, 
     substitution_data: { 
     name: 'User one', 
     username: 'userone' 
     } 
    }, { 
     address: { email: 'RECIPIENT2' }, 
     substitution_data: { 
     name: 'User two', 
     username: 'user2' 
     } 
    } 
    ], 
    content: { 
    template_id: 'test-template' 
    }, 
    substitution_data: { 
    company: 'Awesome company' 
    } 
} 

response = sp.transmission.send_payload(payload) 
p response 

Die E-Mail

Hallo Benutzer ein, Ihr Benutzername, userone, erstellt ist. Danke Ehrfürchtige Firma

+0

danke! das ist, was ich gesucht habe. schätzen es – Yasir

+0

user = User.find User_id sp = SparkPost :: Client.new (ENV [ 'SPARKPOST_API_KEY']) message = { Empfänger: [ { Adresse: {E-Mail: user.email}, substitution_data : { Name: user.name, E-Mail: user.email } } ], Inhalt: { template_id: 'E-Mail-Bestätigung' } } response = sp.transmission.send_payload (Meldung) p Resonanz – Yasir

+0

Ich habe Folgendes, mache einige Tests, bekomme keine E-Mails, sieht das korrekt aus? – Yasir