通过 API 调用取消用户订阅所有邮件?

我维护的网站通过 SSO 使用 Discourse。当我的网站用户取消订阅网站生成的邮件时,我也希望取消该用户对 Discourse 邮件的订阅。通过查看用户在 UI 中更改邮件设置时发出的 API 调用,应该可以确定所需的操作,但我想问一下是否有更简单的方法?

是否总是意味着他们既不想接收站点邮件,也不想接收社区邮件?

如果他们有可能只想退订其中一种而非两种,为什么不直接链接到一个页面,让他们管理自己的 Discourse 邮件偏好设置呢?

是的。管理层已指示我,当用户取消订阅网站邮件时,也要将其从 Discourse 邮件中取消订阅。

对任何有兴趣跟进的人:
我的需求通过遵循逆向工程指南得到了满足。收集 PUT 请求负载的内容是一个相当直接的过程。

在 Ruby 中,我最终得到的负载是:
payload = {mailing_list_mode: false, mailing_list_mode_frequency: 1, email_digests: false, email_in_reply_to: false, email_messages_level: 2, email_level: 2, email_previous_replies: 2 }

由于 mailing_list_mode 为 false,mailing_list_mode_frequency 可能可以排除。
然后,将该负载 PUT 到 https://DISCOURSEHOST/u/USERNAME.json?api_key=DISCOURSE_SYSTEM_API_KEY&api_username=system

我已实现了相同的逻辑,但值未反映在网站的用户电子邮件偏好设置中。

请注意,通过查询参数传递 api_keyapi_username 的方法现已弃用,您应改用 Api-KeyApi-Username 头部 如今