gpt4 book ai didi

ruby-on-rails - MailMan 和保存附件

转载 作者:行者123 更新时间:2023-12-03 04:40:18 25 4
gpt4 key购买 nike

我正在使用mailmain gem 来抓取 pop3 邮件。该库使用 mail gem 用于分解邮件正文和附件。我现在可以在 pry 命令行中获取附件,如下所示:

14: Mailman.config.rails_root = '../'
15:
16: Mailman::Application.run do
17: to 'expenses@surveymonkey.com' do
18: require 'debugger'; debugger
=> 19: print message
20: end
21: end

我可以获得像这样的单独附件

[1] pry(#<Mailman::Router>)> a = message.attachments[0]
=> #<Mail::Part:70339703566060, Multipart: false, Headers: <Content-Type: image/jpeg; name="70s-Jump-Suit.jpeg">, <Content-Transfer-Encoding: base64>, <Content-Disposition: attachment; filename="70s-Jump-Suit.jpeg"; size=38412; creation-date="Tue, 26 Jun 2012 22:11:10 GMT"; modification-date="Tue, 26 Jun 2012 22:11:10 GMT">, <Content-Description: 70s-Jump-Suit.jpeg>>

那么,问题是,如何保存这些数据?

我很接近this method ,但我无法正确保存。

我已经尝试过这样的事情

[2] pry(#<Mailman::Router>)> File.open( '/tmp/output.jpg', "w+b", 0644 ) { |f| f.write a.raw_source }

但是输出很糟糕。

我只是对电子邮件编码了解不够,无法让它发挥作用。

提前致谢!

最佳答案

啊,我们开始吧:

http://cbpowell.wordpress.com/2011/01/17/saving-attachments-with-ruby-1-9-2-rails-3-and-the-mail-gem/

# tmail is now a Mail object
tmail.attachments.each do |tattch|
fn = tattch.filename
begin
File.open( fn, "w+b", 0644 ) { |f| f.write tattch.body.decoded }
rescue Exception => e
logger.error "Unable to save data for #{fn} because #{e.message}"
end
end

关于ruby-on-rails - MailMan 和保存附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11217190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com