我正在从Mandrill迁移到SparkPost,并有一个Rails后端。
我目前的数据结构如下--
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,
}这会发出回应--
m = Mandrill::API.new
template_content = []
result = m.messages.send_template 'email-confirmation', template_content, message我需要更新JSON数据结构吗?一旦JSON是好的,如何使用SparkPost将值传递给特定的模板?
我尝试了以下方法--
m = SparkPost::Client.new()
template_content = []
result = m.messages.send_template 'email-confirmation', template_content, message但我也看到了--
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
}
})感谢你的帮助!
发布于 2016-04-23 01:39:05
如果您使用的是官方的gem,那么它有一个名为send_payload的方便方法,您可以使用它来发送准备好的有效负载。
substitution_data在recipients集合中是每个收件人的替换。
例如,我遵循模板。

要使用此模板发送,这是我的完整代码
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这封电子邮件看起来就像
你好,用户一,您的用户名,userone,被创建。谢谢你的公司
https://stackoverflow.com/questions/36805381
复制相似问题