3

我正在通过 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 方法)调用,我可以轻松地将成员状态更新为“已订阅”。因此,我可以从我的 cms 管理所有 Mailchimp 订阅,而无需任何 Mailchimp 默认行为和布局。

但是,即使“double_optin”参数为假,默认的 Mailchimp 确认电子邮件也不会发送给用户。

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

我能做点什么吗?

4

2 回答 2

9

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

在 v3.0 中,设置statuspending发送确认电子邮件。

于 2015-09-08T06:12:31.023 回答
1

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

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

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

  2. mandrill使用或其他服务向用户发送电子邮件。这封邮件的目的是让他接受subscribed加入您的名单。

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

您可以在此处此处找到更多详细信息。

于 2018-06-13T13:38:26.733 回答