ruby-on-rails-3 - 从 Rails 3.2.x 中的 SendGrid 接收带有附件的电子邮件

标签 ruby-on-rails-3 email-attachments sendgrid

我可以成功接收来自 SendGrid 的电子邮件并处理其数据。 我的问题是电子邮件附件。

当我查看每个附件发布的内容时,我得到以下内容:

"attachment12"=>#<ActionDispatch::Http::UploadedFile:0x00000008a793f8 
                  @original_filename="image036.png", 
                  @content_type="image/png", 
                  @headers="Content-Disposition: form-data; 
                            name=\"attachment12\";
                            filename=\"image036.png\"\r\n
                            Content-Type: image/png\r\n", 
                  @tempfile=#<File:/tmp/RackMultipart20120620-35076-1xav4k1>
                >

而不是

Array
(
  [attachment1] => Array
    (
      [name] => Upload.csv
      [type] => text/csv
      [tmp_name] => /tmp/phpo34iHI
      [error] => 0
      [size] => 76
    )
)

显示的 Parse API 中引用了 enter link description here 显然,Rails 一如既往地优雅。

但是,我的问题是:

  1. 文件在哪里,按照暗示下载到哪里?我找不到他们(如果发生这种情况我会担心)

我实际上正在阅读 ActionDispatch::Http::UploadedFile,根据文档我应该能够执行 params['attachment12'].read

我将发布我的发现


  1. 生产是 Heroku,所以我需要将文件粘贴到某种容器中,例如 DB、Mongo 或 S3
  2. 我猜测该文件实际上位于 sendgrid,但他们的支持无法理解我的问题并将我恢复到解析 api!可能有一个 URL,但在他们的支持下我无法深入了解它。不幸的是。

最佳答案

这些文件实际上已发布到您的服务器,但您会获得一个 ActionDispatch::Http::UploadedFile 来使用。如果你看一下class description您可以看到有几件事可供您使用:

original_filename 属性很明显,但您可以使用 .read 实际读出内容并保存它,或者您可以将临时文件直接传递给您所在的任何 gem使用。

如果您能告诉我您使用哪种上传解决方案(回形针、载波)(如果有的话),我可以为您提供更好的帮助。

关于ruby-on-rails-3 - 从 Rails 3.2.x 中的 SendGrid 接收带有附件的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11117698/

相关文章:

ruby-on-rails - acts_as_tree 并通过子标题将值传播到项目

mysql - 如何查找第二个表中不存在的记录,Rails

c# - 将文件从 Internet 附加到邮件,而不将其保存在 ASP.NET 的磁盘中

java - 在 mimemessage 中添加 "addinline"函数时出现 NullPointerException

php - 为什么使用 SendGrid(和其他服务)

ruby-on-rails - 如何更改覆盖 'to_json' 方法的值?

c# - 我可以发送图像和 rar 文件,但这些文件已被 asp.net 损坏?

javascript - 如何在javascript中使模块异步

c# - 邮政添加自定义 header

ruby-on-rails - Rails 嵌套关联和重新编号