使用ContextIO从邮件下载附件并将其上载到服务器上

时间:2013-06-07 11:25:57

标签: ruby-on-rails-3 file fileutils

我是Rails和Context.IO的新手。 我正在尝试根据从邮件中提取的值在我的数据库中创建一条记录。

我正在尝试使用contextio获取邮件附件并将其下载到我服务器上的/ public目录中。

我已成功获得附件的路径,唯一的问题是当我尝试下载时,我遇到了问题。

我试过了 1.“net / http”,这是不成功的,因为URI是https。 2. FileUtils.cp_r(源,目标),它说我的源没有这样的文件或目录。如果我从浏览器访问源uri,它会弹出我下载文件。

1 个答案:

答案 0 :(得分:0)

我不知道context.io,但我很快看了一眼api并发现这个下载附件:http://context.io/docs/2.0/accounts/files/content

因此,要下载附件,只需在普通红宝石中尝试这样的东西:

require 'net/http'
account_id = 12345
file_id = 45678

Net::HTTP.start("https://api.context.io") do |http|
    resp = http.get("/2.0/accounts/#{account_id}/files/#{file_id}/content")
    open("attachment.extension", "wb") do |file|
        file.write(resp.body)
    end
end