amazon-web-services - 接收电子邮件并将它们移动到 sidekiq 队列
问题描述
我的网站上有一个消息传递应用程序(前端 + API),用户可以在其中相互发送消息。
目前,每次通过表单输入消息并发送到我的 API 时,我的后端MessageService
都会启动,并执行许多操作,包括向对方发送电子邮件通知。
我想实现一个系统,用户可以直接回复电子邮件,并且以某种方式这将由我的应用程序处理,MessageService
就像消息是通过我的前端应用程序通过 POST 发送的一样。
为了做到这一点,我正在考虑以下 TODO
- 首先设置一个自定义邮件域,如
@mail.example.com
- 找到可以接收发送到此地址的电子邮件的服务(支付一些 SASS 或自己设置一些邮件服务器)。理想情况下,它将基于云/AWS
- 将所有收到的电子邮件转发到我的 redis / sidekiq 队列之一
- 让用我最喜欢的语言(Ruby/Rails)编写的工作人员从我的队列中读取消息,这样我就可以将所有逻辑处理转发到我的
MessageService
你有关于我如何实现 2 和 3 的提示吗(将收到的电子邮件转发到 sidekiq 队列)
解决方案
不确定您是否使用 Rails,Rails 6 是下一个版本,它将包含 ActionMailbox,其用途与您描述的相似。
查看前沿指南https://edgeguides.rubyonrails.org/action_mailbox_basics.html虽然它尚未发布并且您可能正在使用其他东西,但您可以从它们的实现中获得想法。
在指南中提到了几个适配器,其中之一是使用Amazon Simple Email Service,您只需将接收电子邮件连接到应用程序中的端点,然后该端点将处理请求、保存数据以供以后使用并安排工作人员,例如:MessageServiceWorker.perform_async(message.id)
.
推荐阅读
- google-sheets - 动态下拉选项加载消失 html 模态对话框
- reactjs - 如何减少antd Form.Items之间的间距?
- c++ - 设置条件时 lldb 失败
- javascript - javascript保留旧变量
- asp.net-core-signalr - 带有 Redis 背板的 SignalR;我究竟做错了什么?
- javascript - “VSCode 在 React/TypeScript 项目中不断显示 'ESLINT: Unexpected token export'”
- audio - 音频编解码器的这种变化会导致明显的差异吗?
- javascript - 在 vuejs 中使用突变过滤?
- ruby-on-rails - 与 SwitchPoint 并行有时在 Rails 上没有连接错误
- swift - 如何在没有样板的情况下从超类访问内部对象的属性