我正在通过php执行curl调用Mailchimp API v3.0 . 当用户注册我的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默认行为和布局 .
But the default Mailchimp Confirmation email is never sent to the user, even if the 'double_optin' param is false.
我注意到如果我将成员状态设置为'unsubscribed',则用户没有收到确认电子邮件 . 但这在逻辑上是错误的!我想要Mailchimp订阅的两个步骤应该是
待定 - >订阅
并不是
取消订阅 - >订阅 .
我能为此做些什么吗?
2 回答
您好像在混合使用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中,将
status
设置为pending
会发送确认电子邮件 .mailchimp API v3的内部
pending
状态不存在,因此您可以为用户管理手动双重选择 . 它就在那里,mailchimp可以向用户发送自己的自动双重选择电子邮件 .要实现手动双重选择,您应该执行以下操作:
当用户在客户端提交表单时,向mailchimp api v3发出
POST
请求并将新用户添加到列表中unsubscribed
使用
mandrill
或其他一些服务向用户发送电子邮件 . 这封邮件的目的是他接受subscribed
进入你的清单 .当用户点击邮件时
PATCH
请求并将用户更新为subscribed
.您可以找到更多详细信息here和here .