Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用电子邮件端点通过电子邮件订阅Amazon SNS主题?_Java_Email_Amazon Web Services_Amazon Sns - Fatal编程技术网

Java 如何使用电子邮件端点通过电子邮件订阅Amazon SNS主题?

Java 如何使用电子邮件端点通过电子邮件订阅Amazon SNS主题?,java,email,amazon-web-services,amazon-sns,Java,Email,Amazon Web Services,Amazon Sns,我正在使用Amazon SNS向用户发送简单的消息。我使用了几个不同端点的主题,包括电子邮件 现在,主题的订阅由Java后端通过AWS Java SDK处理。我通过amazonsclient获取用户地址并创建订阅。用户必须确认其订阅。稍后,他也可以通过点击我的亚马逊SNS邮件中的链接取消订阅 我想知道的是-不可能让用户通过电子邮件订阅吗? 比如给subscribe@....amazonaws.com以主题的ARN作为主题-或类似主题 然后,我可以在我的应用程序中显示一个mailto:链接作为订阅

我正在使用Amazon SNS向用户发送简单的消息。我使用了几个不同端点的主题,包括电子邮件

现在,主题的订阅由Java后端通过AWS Java SDK处理。我通过
amazonsclient
获取用户地址并创建订阅。用户必须确认其订阅。稍后,他也可以通过点击我的亚马逊SNS邮件中的链接取消订阅

我想知道的是-不可能让用户通过电子邮件订阅吗?
比如给
subscribe@....amazonaws.com
以主题的ARN作为主题-或类似主题


然后,我可以在我的应用程序中显示一个
mailto:
链接作为订阅链接,这在我的应用程序中有一些优势。

通过电子邮件订阅电子邮件通知可能会被滥用-只要找到一种方法,用伪造的
发件人地址构建一封电子邮件,你就会有数百名订阅者


因此,从安全角度来看,这显然是不安全的——这可能是它一开始就不存在的地方。

我看到你将SNS与邮件列表进行比较。你需要意识到的是,SNS并不是为用作邮件列表而设计的,而且在向最终用户发送任何一种好看的电子邮件时,它确实是非常糟糕的。我只建议使用SNS电子邮件向您的管理人员发送系统停机警报。我认为这种混淆是因为SNS移动推送功能旨在向最终用户推送消息,但其他SNS通知方法(电子邮件、http、SMS、SQS、Lambda)根本不是为最终用户设计的


如果你想坚持使用AWS服务,那么你可以在SES上建立一个新闻稿功能,或者使用Sendy之类的东西。我个人建议在AWS之外寻找功能齐全的电子邮件服务,如MailChimp或SendGrid。

目前是否可能?不,不是。从安全角度来看,伪造“发件人”地址并不困难,这可能会导致大量滥用。我建议Ping AWS支持并讨论您希望直接与他们实现的选项-也许还有其他一些服务/选项可以帮助您?@Chris大多数邮件列表都有此选项。你仍然需要确认订阅,我不明白为什么它不安全。但我不明白为什么通过发送邮件订阅“从安全角度看不安全”,因为大多数邮件列表都有“通过发送邮件订阅”选项。看见当然,你仍然需要确认订阅。仅仅因为它存在并不意味着这是一个好主意。我显然不喜欢使用电子邮件注册,因为伪造非常简单。这可能是一个好主意,也可能不是一个好主意,取决于用例。你带来了一个安全问题,我想知道它是否正确。只要我知道目标公司的邮件地址,我就可以开始订阅数百个邮件列表,不管我是通过电子邮件还是网络表单订阅(只要他们不使用CAPTCHA,而且很多人不使用)。但不像你说的那样,如果他们不确认订阅(我不能伪造),我就不会得到数百个订户。所以我真的不明白为什么通过发送邮件订阅通常不那么安全。我的错误在哪里?如果我理解您建议的流程:(1)用户向
subscribe@...
,(2)一些系统将该电子邮件转换为订阅请求,并尝试向SNS订阅该电子邮件,(3)SNS发送确认电子邮件。(4) 用户确认订阅。你最初的问题意味着你在问“SNS能在这个过程中成为系统2吗”——不,它不能。你可以自己做一些事情,但正如马克在回答中提到的那样,“[SNS]在向最终用户发送任何好看的电子邮件时确实非常糟糕”我不认为这有什么大问题-我们最初将其解释为没有确认的订阅(将“确认”视为来自特定电子邮件地址). 在任何情况下,您都必须自己实现这样一个组件(接收电子邮件并向用户订阅SNS),因为SNS不会这样做。我使用SNS发送大约3000个电梯/自动扶梯设施的健康状态通知。所以这就是停机警报。这些电子邮件只是一句话,不需要好看。从我的角度来看,SNS非常适合这项任务,我认为没有足够的附加值可以转移到其他方面。我的全部问题是,我是否可以只呈现一个
mailto:…
链接,或者我是否需要一些后端来创建订阅。不,不可能通过电子邮件订阅,因为其他人已经回答了。你的回答是将SNS与邮件列表服务进行比较,这就是为什么我发布了我的答案,解释说Amazon构建SNS并不是为了用作邮件列表服务。“我的全部问题是,我是否可以只呈现一个邮件收件人:……链接,还是需要一些后端来创建订阅。”-您需要编写后端以创建订阅。