2
因此,我正在尝试发送包含.zip文件的电子邮件。 .zip文件位于另一台服务器上的另一个URL上。我能够检索文件,附加并发送它。但是,当我从电子邮件中获得附件时。它不会打开,因为它说不能打开* .zip.zip我已经尝试删除名称中的.zip,但然后归档管理器无法打开它。将.zip文件作为电子邮件附件发送至Rails
任何想法?
代码如下。
http = Net::HTTP.new('www.somedomaim.org')
http.start() { |http|
req = Net::HTTP::Get.new("/path/to/file.zip")
response = http.request(req)
tempfile = Tempfile.new('files')
File.open(tempfile.path, 'w') do |f|
f.write response.body
end
attachments["files.zip"] = File.read(tempfile.path)
mail to: [email protected], subject: "Sending zip file"
}
[解决]
该解决方案是相当简单的。
attachments['files.zip'] = open('http://somedomain.com/path/to/file.zip').read
附件需要接收文件的内容。 .read返回文件的内容。我的问题是,我把整个zip文件放在一个新文件的内容中。上述解决方案将仅将zip的内容放入新文件中。
希望这可以帮助别人有一天。感谢所有的建议。
如果你把附件[“files”] = File.read(tempfile.path) – Abram
会发生什么我得到一个文件作为没有扩展名的附件。检查属性时,它的大小为0字节,类型为文本文档。一些我如何怀疑我将一个文件的http响应保存到一个文件中(这不算什么),而不是zip文件。 – robinjohnobrien
http://rubyzip.sourceforge.net/classes/Zip/ZipFile.html – Abram