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 に答える