如何将附件上传到通过电子邮件收到的应用程序?

How to upload attachment to application received via email?

我有一个 Rails 应用程序 (5.2.3)。

有一个名为 Invoice 的模型。

用户可以通过视图导入发票,上传 XML 文件。

现在,利益相关者要求有一个任何用户都可以发送 XML 文件的邮箱,文件将自动上传到系统。

系统目前在 AWS 上 运行,因此刚刚在 SES(简单电子邮件服务)中为 x@x.com 邮箱创建了一条规则,用于将所有消息保存在 S3 存储桶中,以被解析泡沫。

我可以用一个简单的脚本来处理所有事情(从 S3 获取文件,提取 XML,创建发​​票)并安排一个跑步者。 但是,对于这种情况,Rails方法是什么?

我阅读了有关服务对象的信息,但我不确定它是否是执行此任务的最佳位置。

谢谢

I could just do a plain script with everything(get files from S3, extract XML, Create Invoice) and schedule a runner

您可以为上面写一个 rake 任务并 运行 它作为一个 cron 作业或作为一个无限循环每 x 秒提取一次文件

您还可以使用 Mail gem 定期提取电子邮件并提取 XML 附件并创建发票。例如,每分钟提取最后 10 封电子邮件

您正在谈论解析入站电子邮件,例如,有人将附件发送到 upload@yourdomain.com,您希望将该附件上传到您的系统中。为此,您需要正确配置您的 Amazon SES 控制台,并为您的应用程序设置一个端点,该端点将使用电子邮件的内容处理来自您的邮件服务的传入 webhook 回调。您可以在此处阅读更多相关信息

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html