我正在尝试使用RoR和官方mailchimp-api gem订阅一封电子邮件到多个列表。它工作,但最后四个值(double_optin,update_existing,replace_interests和send_welcome)没有更新,我收到一个错误,即电子邮件“已经存在”,即使我正在尝试将update_existing传递为true。我已经多次写过Mailchimp了,他们觉得他们已经达到了他们的帮助。他们说他们不是包装材料的专家 - 即使它是“官方”的宝石 - 并且无法帮助我。我的代码如下所示:
responses << mailchimp_lists.each do |ml|
mailchimp.lists.subscribe(
ml,
{ "email" => order.customer_email,
"euid" => order.customer_id,
"leid" => ""
},
{ "FNAME" => order.customer_first_name,
"LNAME" => order.customer_last_name,
"COMPANY" => order.company_name,
"ADDRESS1" => order.billing_address_1,
"ADDRESS2" => order.billing_address_2,
"CITY" => order.billing_city,
"STATE" => order.billing_state,
"POSTALCODE" => order.billing_zip,
"SALUTATION" => ""
},
"html",
false,
true,
false,
false
)
end
我尝试用几种不同的方式发送最后四个参数,例如:
"email_type" => "html",
"double_optin" => false,
或者:
{"email_type" => "html"},
{"double_optin" => false}
有时,Mailchimp可以看到params以这样一种方式到达,它似乎不应该触发“电子邮件已存在”错误,但它不会起作用。任何帮助表示赞赏。
答案 0 :(得分:0)
mailchimp-api gem的文档将subscribe方法描述为:
#subscribe(id, email, merge_vars = nil, email_type = 'html', double_optin = true, update_existing = false, replace_interests = true, send_welcome = false)
batch_subscribe显示:
#batch_subscribe(id, batch, double_optin = true, update_existing = false, replace_interests = true)
请注意,批处理方法不包含“send_welcome”参数。当我从订阅方法的params列表中删除它时 - 基本上按照建议发送三个布尔值而不是四个布尔值,update_existing工作得很好。这似乎是文档中的错误:http://www.rubydoc.info/gems/mailchimp-api/2.0.4/Mailchimp/Lists#subscribe-instance_method
希望这有助于其他人!