Mailchimp API v3.0更改订阅者电子邮件

时间:2015-08-26 10:53:05

标签: php rest mailchimp

我想知道Mailchimp API v3.0是否允许为订阅者更改EMAIL地址。

这就是我所拥有的:

$email = strtolower(trim($oldEmail));
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    return false;
}
$emailHash = md5($email);

$result = $this->patch('/lists/'.$listid.'/members/'.$emailHash, 
    array(
        'email_address' => $oldEmail,
        'merge_fields' => array("EMAIL" => $newEmail),
        'status' => "subscribed",
    ));

它不起作用。 Mailchimp返回通常的GET MEMBER响应,并显示没有任何更改。

有什么想法吗?

谢谢你, 的Riccardo

4 个答案:

答案 0 :(得分:9)

根据the docs,确实如此。它也不适合我们,因此我们会联系Mailchimp以了解它在文档中的原因。

编辑:这确实不可能,文档已经过时了。以下是mailchimp对此的评价:

  

嗨菲利普,      感谢您通过这些API问题与MailChimp支持联系,并允许我们提供帮助。      使用MailChimp 3.0版,用户无法更新订户电子邮件地址。虽然我们的API的过去版本可能已经提供了此功能,但不再支持它。要更新订阅者电子邮件地址,最好的方法是从MailChimp中手动更新。每个电子邮件地址都被视为列表成员的唯一标识符。      我当然可以理解文档如何有点误导,并且您确实能够更新列表中的订阅者字段,但电子邮件地址不是其中之一。这就是为什么你没有在MailChimp中看到更新的信息。我将在此审查文档,并提出建议,如果我们确实建议使用API​​更新电子邮件地址,那么就可以编辑该文章。感谢您的反馈,并感谢您与我们一起。      我们在审查结果时感谢您的时间,精力和耐心。再次感谢您选择MailChimp,并随时向我们发布您可能继续前进的任何其他问题。   

答案 1 :(得分:9)

我知道这有点晚了,但现在.../3.0/lists/{listId}/members/{md5}方法({{1}})允许更改电子邮件地址。

我在正文和MERGE0(EMAIL)标记中发送新电子邮件,但使用上一封电子邮件中的md5。它正在正确地更改电子邮件。

答案 2 :(得分:5)

根据MailChimps changelog,自2016年11月3日起,可以更改用户的电子邮件补丁放置

  

<强> 2016年11月3日

     

添加更新现有列表成员的email_address的功能   通过PATCH或PUT调用   /列表/ {LIST_ID} /构件/ {subscriber_hash}

您无需使用merge_field来更改电子邮件。你可以这样做:

$emailHash = md5($oldEmail);

$result = $this->patch('/lists/'.$listid.'/members/'.$emailHash, 
    array(
        'email_address' => $newEmail,
        'status' => "subscribed",
    ));

答案 3 :(得分:4)

不,MailChimp并不真正允许更改电子邮件地址。您可以在网络应用中执行此操作,但几乎所有统计信息和活动信息都无法继续使用。由于这个原因,API v3.0根本不支持更改电子邮件地址。您要做的是取消订阅或删除旧地址,然后重新创建新地址。