我試圖建立一些rake任務下載ZIP文件。它需要我連接到Gmail並下載作爲附件發送的Zip文件。回報率 - 使用Gmail寶石
我寫了下面的代碼(下載CSV正常工作) -
gmail = Gmail.connect(ENV["USERNAME"], ENV["PASSWORD"])
msg = gmail.inbox.find(from: ENV["REC_USER"],
subject: args[:subject])
dir_path = "lib/mfu_payment_data/"
Dir.mkdir dir_path unless File.exists?(dir_path)
if msg.first
msg.first.attachments.each do |attachment|
File.write(File.join(dir_path,attachment.filename),attachment.body.decoded)
end
end
它引發以下錯誤 -
rake aborted!
Encoding::UndefinedConversionError: "\xED" from ASCII-8BIT to UTF-8
我認爲這已經得到的東西做的attachment.body.decoded,但我不知道如何做到這一點。
你可以嘗試以二進制方式寫:'File.open(File.join(...), 'WB'){|文件| file.write(attachment.body.decoded)}' – Kris
謝謝!!你的建議奏效了。 :) 請不要把它放在答案部分,這樣我可以給予好評的。 –