Mailchimp API v3.0添加待定成员而不需要确认电子邮件


Mailchimp API v3.0 add pending member without confirmation email

我正在通过php对Mailchimp API v3.0执行curl调用。当用户注册我的cms时,我给他发送一封确认邮件,并将成员添加到特定的Mailchimp列表中,调用此URL:

'https://us11.api.mailchimp.com/3.0/lists/'.$list_id.'/members/';

传递这些参数:

$data = array(
    'apikey'            => $apikey,
    'email_address'     => $mailchimp_user['email'],
    'status'            => 'pending',
    'update_existing'   => true,
    'send_welcome'      => false,
    'double_optin'      => false,
    'merge_fields'      => array(
        'FNAME'             => $mailchimp_user['FNAME'],
        'LNAME'             => $mailchimp_user['LNAME']
    )
);

Mailchimp待处理订阅成功。当用户点击从我的cms发送的确认邮件时,使用另一个curl (PATCH方法)调用,我可以轻松地将会员状态更新为"订阅"。所以我可以管理所有Mailchimp订阅从我的cms,没有任何Mailchimp的默认行为和布局。

但是默认的Mailchimp确认邮件永远不会发送给用户,即使'double_optin'参数为false。

我注意到,如果我将会员状态设置为"取消订阅",用户不会收到确认电子邮件。但这在逻辑上是错误的!我希望Mailchimp订阅的两个步骤应该是
pending ->已订阅
而不是
未订阅->已订阅

我能做点什么吗?

您似乎混合了v2.0 API和v3.0 API。在v3.0中,您不应该在请求体中传递API密钥,并且没有double_opt_in标志。在MailChimp中,如果您将用户设置为pending,他们将始终收到一封确认电子邮件。V2.0和v3.0的处理方式不同。在v2.0中,将double_opt_in作为true传递会导致一个挂起的成员收到一封确认电子邮件。将其作为false传递将导致订阅成员。

在v3.0中,设置"status"为"pending"会发送确认邮件

mailchimp API v3的内部pending状态不存在,因此您可以为您的用户手动管理双重选择。这样mailchimp就可以向用户发送他们自己的自动双重选择电子邮件。

要实现手动双重选择,您应该执行以下操作:

  1. 当用户在客户端提交表单时,向mailchimp api v3发出POST请求,并将unsubscribed添加到您的列表中

  2. 通过mandrill或其他服务发送邮件给用户。这封邮件的目的是他接受subscribed进入你的名单。

  3. 当用户单击邮件时,向mailchimp api v3发出PATCH请求,并将用户更新为subscribed

你可以在这里找到更多的细节,和这里。