【问题标题】:Mailchimp does not forget about unsubscribed usersMailchimp 不会忘记未订阅的用户
【发布时间】: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 不会忘记未订阅的用户并阻止我在列表中添加两次相同的用户,即使它之前已被取消。

我该如何解决这个问题?

【问题讨论】:

    标签: ruby-on-rails ruby email mailchimp


    【解决方案1】:

    我解决了这个问题。基本上对于 mailchimp 而言,“未订阅”用户不是已删除的用户,因此即使状态不同,您也可以使用相同的电子邮件订阅两个用户。

    我没有将它们的状态更改为“未订阅”,而是删除了它们:

    email_hash = Digest::MD5.hexdigest(u.email).downcase
    @@gibbon.lists(@@list).members(email_hash).delete
    

    【讨论】:

      猜你喜欢
      • 2011-11-22
      • 2016-03-26
      • 2019-10-09
      • 2021-05-18
      • 2011-12-11
      • 2017-06-28
      • 2013-11-09
      • 2015-08-13
      • 2015-06-02
      相关资源
      最近更新 更多