所以我正在尝试发送一封包含 .zip 文件的电子邮件。.zip 文件位于另一台服务器上的另一个 url。我能够检索文件,附加并发送它。但是,当我从电子邮件中获取附件时。它不会打开,因为它说无法打开 *.zip.zip 我已尝试删除名称中的 .zip,但存档管理器也无法打开它。
有任何想法吗?
代码如下。
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: someone@somewhere.com, subject: "Sending zip file"
}
[解决了]
解决方案相当简单。
attachments['files.zip'] = open('http://somedomain.com/path/to/file.zip').read
附件需要接收文件的内容。.read 返回文件的内容。我的问题是我将整个 zip 文件放在新文件的内容中。上述解决方案将仅将 zip 的内容放入一个新文件中。
希望有一天这对某人有所帮助。感谢所有的建议。