我正在通过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就可以向用户发送他们自己的自动双重选择电子邮件。
要实现手动双重选择,您应该执行以下操作:
-
当用户在客户端提交表单时,向mailchimp api v3发出
POST
请求,并将unsubscribed
添加到您的列表中 -
通过
mandrill
或其他服务发送邮件给用户。这封邮件的目的是他接受subscribed
进入你的名单。 -
当用户单击邮件时,向mailchimp api v3发出
PATCH
请求,并将用户更新为subscribed
。
你可以在这里找到更多的细节,和这里。