Mailjet:删除联系人

Mailjet: delete contact

是否可以实际从mailjet中删除一个contact

他们的 contact API doc 甚至没有将 delete 列为受支持的操作。

from mailjet_rest import Client

mailjet = Client(auth=(MAILJET_API_KEY, MAILJET_API_SECRET), version='v3')
mailjet.contact.delete(<contact-id>).json()
{'ErrorInfo': '', 'ErrorMessage': 'Operation not allowed', 'StatusCode': 401}

我有兴趣删除 contact,而不是 list recipient,因此这个问题不是 How can i delete a contact from a list with the mailjet api and php? 的副本。

有权删除并且GDPR迫在眉睫,我也会对此感兴趣。他们的支持团队说这是不可能的,你必须联系他们,这样他们才能手动删除联系人?!

API reference does not yet seem to be updated with the DELETE method, but under API guides好像有删除联系人的资料:

Retrieve a Contact

To delete a contact, you must first identify its presence in the contact database of your account.

Use GET /contact/$CONTACT_EMAIL to do it.

curl -s \
    -X GET \
    --user "$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE" \
    https://api.mailjet.com/v3/REST/contact/$CONTACT_EMAIL 

Delete the Contact

Use the {contact_ID} you retrieved to DELETE the contact with the /v4/contacts/{contact_ID} endpoint. When the deletion is successful, the API will return a 200 OK status. Any other response will indicate that the deletion was not successfully processed.

curl -s \
    -X DELETE \
    --user "$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE" \
    https://api.mailjet.com/v4/contacts/{contact_ID} \

注意:这是一个 /v4 端点,而不是 /v3

在Python中,使用简单的删除请求

import requests
public_api_key = 'YOUR PUBLIC MAILJET KEY'
private_api_key = ''YOUR PRIVATE MAILJET KEY''
id = 'ID OF CONTACT'

url = 'https://api.mailjet.com/v4/contacts/'+id

x = requests.delete(url, auth = (api_key, api_secret))

print(x.status_code)