You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SendGrid API更新邮箱地址关联的联系人列表?

解决SendGrid联系人列表替换问题

问题原因

你使用的PUT /v3/marketing/contacts接口中,list_ids参数的默认行为是将联系人追加到指定列表,而非替换已关联的所有列表。因此第二次请求仅将联系人添加到ZZZZZ列表,并未移除之前的XXXXX和YYYYY,导致最终三个列表关联。

解决方案

方案1:分两步操作(移除旧列表 + 添加新列表)

1. 移除联系人从旧列表

使用POST /v3/marketing/contacts/remove-from-lists接口,指定要移除的邮箱和旧列表ID:

curl -X POST "https://api.sendgrid.com/v3/marketing/contacts/remove-from-lists" \
--header "Authorization: Bearer <<YOUR_API_KEY_HERE>>" \
--header "Content-Type: application/json" \
--data '{"list_ids":["057204d4-755b-4364-a0d1-XXXXXX", "057204d4-755b-4364-a0d1-YYYYY"], "emails": ["annahamilton@example.org"]}'

2. 添加联系人到新列表

使用原PUT请求将联系人添加到目标列表:

curl -X PUT "https://api.sendgrid.com/v3/marketing/contacts" \
--header "Authorization: Bearer <<YOUR_API_KEY_HERE>>" \
--header "Content-Type: application/json" \
--data '{"list_ids":["057204d4-755b-4364-a0d1-ZZZZZ"], "contacts": [{"email": "annahamilton@example.org"}]}'

方案2:单请求完成替换

在同一个PUT请求中,通过delete_list_ids参数指定要移除的旧列表,list_ids指定要添加的新列表,一次性完成替换:

curl -X PUT "https://api.sendgrid.com/v3/marketing/contacts" \
--header "Authorization: Bearer <<YOUR_API_KEY_HERE>>" \
--header "Content-Type: application/json" \
--data '{
  "list_ids": ["057204d4-755b-4364-a0d1-ZZZZZ"],
  "delete_list_ids": ["057204d4-755b-4364-a0d1-XXXXXX", "057204d4-755b-4364-a0d1-YYYYY"],
  "contacts": [{"email": "annahamilton@example.org"}]
}'

注意事项

  • 若不确定联系人当前关联的所有列表,可先通过POST /v3/marketing/contacts/search/emails接口查询获取list_ids。
  • 确保API密钥拥有marketing.contacts的读写权限,避免权限错误。

内容的提问来源于stack exchange,提问作者Azad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 07:22:38