我可以成功接收来自 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 一如既往地优雅。
但是,我的问题是:
- 文件在哪里,按照暗示下载到哪里?我找不到他们(如果发生这种情况我会担心)
我实际上正在阅读 ActionDispatch::Http::UploadedFile,根据文档我应该能够执行 params['attachment12'].read
我将发布我的发现
- 生产是 Heroku,所以我需要将文件粘贴到某种容器中,例如 DB、Mongo 或 S3
- 我猜测该文件实际上位于 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/