接收电子邮件并将其移至sidekiq队列

时间:2019-02-12 15:11:59

标签: amazon-web-services email message-queue sidekiq mail-server

我在我的网站(前端+ API)上有一个消息传递应用程序,用户可以在其中相互发送消息。

当前,每次通过表单输入一条消息并将其发送到我的API时,后端的MessageService就会启动,并会执行许多操作,包括向另一方发送电子邮件通知。

我想实现一个系统,使用户可以直接回复电子邮件,并且某种程度上,这将由我的应用程序的MessageService处理,就像邮件是从我的前端应用程序通过POST发送一样。

为此,我想到了以下待办事项

  1. 首先设置一个自定义邮件域,例如@mail.example.com
  2. 找到一项服务(自己支付一些SASS或自己设置一些邮件服务器),该服务将接收发送到该地址的电子邮件。理想情况下,它将是基于云/ AWS的
  3. 将所有收到的电子邮件转发到我的redis / sidekiq队列之一
  4. 让用我喜欢的语言(Ruby / Rails)编写的工作人员从队列中读取消息,以便随后将所有逻辑处理转发到我的MessageService

您是否暗示我如何实现2和3(将收到的电子邮件转发到sidekiq队列)

1 个答案:

答案 0 :(得分:0)

不确定您是否正在使用Rails,Rails 6是下一版本,它将包含ActionMailbox,其目的与您描述的相似。

查看最新指南https://edgeguides.rubyonrails.org/action_mailbox_basics.html,尽管该指南尚未发布,并且您可能正在使用其他工具,但您可以从其实施中获取一些想法。

在指南中提到了几个适配器,其中一个正在使用Amazon Simple Email Service,您只需将接收电子邮件连接到应用程序中的端点,然后该端点将处理请求,保留数据以供以后使用并安排工作程序,例如:MessageServiceWorker.perform_async(message.id)