邮件列表收件人可以取消订阅我的 Amazon SNS 主题电子邮件列表上的每个人。如何阻止?

上次更新时间:2021 年 1 月 15 日

我已订阅邮件列表的电子邮件地址到我的 Amazon Simple Notification Service (Amazon SNS) 主题。列表中的一位成员选择了消息中的取消订阅链接,取消了邮件列表电子邮件地址以及列表上的每一个人的订阅。我如何避免这种情况?

简短描述

当您通过电子邮件订阅者向 Amazon SNS 主题发布消息时,这些订阅者接收到的电子邮件消息中包含取消订阅的链接。在链接上方,系统显示:“如果您希望停止接收来自该主题的通知,请单击或访问下面的链接取消订阅。”

当有人使用自己的电子邮件地址订阅了某个 Amazon SNS 主题然后又选择取消订阅链接时,只会取消订阅他们自己的电子邮件。

但当 Amazon SNS 主题邮件列表的某个成员选择取消订阅链接时,邮件列表的电子邮件地址将被取消订阅。然后,邮件列表上的每个人都会收到“取消订阅确认”消息。

注意:电子邮件垃圾邮件筛选条件也会取消订阅邮件列表的电子邮件地址。

要防止该取消订阅操作,请创建需要身份验证才能取消订阅的订阅,以便只有主题拥有者和订阅拥有者才能取消订阅。然后,选择该链接的所有人都将收到以下错误:

“Subscription not removed
Your subscription could not be removed because of an error.If you wish to unsubscribe but do not have AWS credentials, or have any other questions about Amazon SNS, please contact Amazon at sns-question@amazon.com.”(订阅未删除。您的订阅由于出错无法删除。如果您希望取消订阅但没有 AWS 凭证,或者您对 Amazon SNS 有任何其他问题,请通过 sns-question@amazon.com 联系 Amazon。)

解决方法

要将现有订阅替换为需要身份验证才能取消的订阅,请先删除现有订阅。然后,使用以下任一方法来设置新的订阅。

重要提示:您需要访问订阅确认电子邮件以确认新的订阅并完成设置。如果您订阅一个邮件列表到您的主题,首先添加您自己的电子邮件地址到邮件列表中,以便您可以确认订阅。

设置需要身份验证才能取消订阅的电子邮件订阅(Amazon SNS 控制台)

1.    打开 Amazon SNS 控制台将您的电子邮件地址订阅到您的主题

2.    在您的电子邮件中,找到来自 AWS 通知的订阅确认消息。发件人通常是“no-reply@sns.amazonaws.com”。

重要提示:请勿使用订阅确认电子邮件中的链接确认订阅。

3.    将确认订阅链接中的 URL 复制到您的剪贴板。

4.    在 Amazon SNS 控制台的左侧导航菜单中选择订阅

5.    在订阅页面上,选择“等待确认”的订阅,然后选择确认订阅

6.    在确认订阅对话框中,粘贴您复制的订阅确认 URL。

7.    选择确认订阅

设置需要身份验证才能取消订阅的电子邮件订阅 (AWS CLI)

注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您运行的是最新版本的 AWS CLI

1.    在 AWS CLI 中,运行以下命令:

aws sns list-topics --region us-east-1

重要提示:如果主题位于其他区域,请确保将区域 region us-east-1 替换为该主题的正确 AWS 区域。

2.    在输出中,找到您要订阅的主题,然后将其 TopicArn 值复制到您的剪贴板。主题 ARN 如下:arn:aws:sns:us-east-1:0123456789012:my-topic

3.    运行以下命令:

aws sns subscribe --topic-arn arn:aws:sns:us-east-1:0123456789012:my-topic --protocol email --notification-endpoint test@amazon.com --region us-east-1

重要提示:确保将 topic-arn 的值替换为您复制的主题 ARN。此外,请将 notification-endpoint 的值替换为您要订阅到主题的电子邮件地址,并将 region 的值替换为您主题的 AWS 区域。

4.    在您的电子邮件中,找到来自 AWS 通知的订阅确认消息。发件人通常是“no-reply@sns.amazonaws.com”。

重要提示:请勿使用订阅确认电子邮件中的链接确认订阅。

5.    从确认订阅链接中将 URL 复制到您的剪贴板,将 URL 粘贴到文本编辑器,然后复制令牌。令牌是 URL 中间的一长串数字和字母,位于 “Token=”之后,“&Endpoint=”之前。例如:

https://sns.us-east-1.amazonaws.com/confirmation.html?TopicArn=arn:aws:sns:us-east-1:123456789012:my-topic&Token=2336412f37fb687f5d51e6e241da92fcfd03593fd8dfa4bd75978a2ad7255afb88e71028f6a034d06f469f6c7ef2
0a609348542a0c68a9561c03a39d59beb02e2b7112c45f7ae26c344819b39cf07f15bef6c6c09766f9caa1fa55c236e7
7c33a50870bc027c74640ff64a7e99a67117
&Endpoint=test@amazon.com

6.    使用您复制的令牌及步骤 2 中的相同主题 ARN 运行以下命令:

aws sns confirm-subscription --token 2336412f37fb687f5d51e6e241da92fcfd03593fd8dfa4bd75978a2ad7255afb88e71028f6a034d06f469f6c7ef20a609348542a0c68a9561c03a39d59beb02e2b7112c45f7ae26c344819b39cf07f15bef6c6c09766f9caa1fa55c236e77c33a50870bc027c74640ff64a7e99a67117 --topic-arn arn:aws:sns:us-east-1:0123456789012:my-topic --authenticate-on-unsubscribe true --region us-east-1

重要提示:确保将 token 的值替换为您复制的令牌。此外,请将 topic-arn 的值替换为步骤 2 中的相同主题 ARN,并将 region 替换为您主题的 AWS 区域。


Amazon SNS 入门

订阅(AWS CLI 命令参考)

确认订阅(AWS CLI 命令参考)

这篇文章对您有帮助吗?


您是否需要账单或技术支持?