2

所以我正在尝试发送一封包含 .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 的内容放入一个新文件中。

希望有一天这对某人有所帮助。感谢所有的建议。

4

1 回答 1

1

解决方案相当简单。

attachments['files.zip'] = open('http://somedomain.com/path/to/file.zip').read

附件需要接收文件的内容。.read 返回文件的内容。我的问题是我将整个 zip 文件放在新文件的内容中。上述解决方案将仅将 zip 的内容放入一个新文件中。

于 2013-07-03T18:29:57.980 回答