Mailchimp 不会忘记未订阅的用户
Posted
技术标签:
【中文标题】Mailchimp 不会忘记未订阅的用户【英文标题】:Mailchimp does not forget about unsubscribed users 【发布时间】:2017-04-10 01:42:08 【问题描述】:我在从我的 mailchimp 列表中取消订阅电子邮件时遇到问题。
基本上我有一个有电子邮件的用户。当用户订阅我的服务时,我会通过 gem gibbon 自动将他的电子邮件插入到我的 mailchimp 列表中(服务器是 Ruby on Rails v2.2.3)
@@gibbon = Gibbon::Request.new(api_key: ENV['MAILCHIMP_API_KEY'])
@@list = 'list_id'
...
@@gibbon.lists(@@list).members.create(body: email_address: email, status: "subscribed", merge_fields: FNAME: first_name, LNAME: full_name)
创建帐户后,用户显然可以更改他的电子邮件地址。如果他这样做了,我会将新电子邮件添加到 mailchimp 列表并删除旧电子邮件:
begin
@@gibbon.lists(@@list).members.create(body: email_address: email, status: "subscribed", merge_fields: FNAME: first_name, LNAME: full_name)
rescue => e
render :json =>
:error => true,
:message => "Email already present",
:user => u,
:personal_link => u.current_link
return
end
member = @@mailchimp.lists(@@list).members(u.email)
member.update status: "unsubscribed"
这在大多数情况下都可以正常工作。 当我尝试用旧电子邮件更改电子邮件时,问题就来了:
0) 使用电子邮件“test@gmail.com”订阅网站
工作正常。
1) 在我的帐户中,我将电子邮件从“test@gmail.com”更改为“test1@gmail.com”
工作正常,我在 mailchimp 列表中不再看到我的旧电子邮件,而是看到了新电子邮件。
2) 将我的电子邮件从“test1@gmail.com”改回“test@gmail.com”
Mailchimp 抛出此错误:
#<Gibbon::MailChimpError: the server responded with status 400 @title="Member Exists", @detail="test@gmail.com is already a list member.
问题是我在数据库中没有使用此电子邮件的任何用户,并且我的 mailchimp 列表中没有使用该电子邮件的任何用户。 这就像 mailchimp 不会忘记未订阅的用户并阻止我在列表中添加两次相同的用户,即使它之前已被取消。
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:我解决了这个问题。基本上对于 mailchimp 而言,“未订阅”用户不是已删除的用户,因此即使状态不同,您也可以使用相同的电子邮件订阅两个用户。
我没有将它们的状态更改为“未订阅”,而是删除了它们:
email_hash = Digest::MD5.hexdigest(u.email).downcase
@@gibbon.lists(@@list).members(email_hash).delete
【讨论】:
以上是关于Mailchimp 不会忘记未订阅的用户的主要内容,如果未能解决你的问题,请参考以下文章
如何让已经订阅的用户再次订阅 Mailchimp/Aweber/GetResponse 列表