ruby-on-rails – 解析电子邮件附件w回形针 – 可能没有临时文件?

发布时间:2020-09-21 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了ruby-on-rails – 解析电子邮件附件w回形针 – 可能没有临时文件?编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在heroku上的rails 3应用程序接收传入的电子邮件.我希望能够接受附件,但无法在没有错误的情况下处理附件.

理想的做法是传递ActionMailer提供的附件.

message_all = Mail.new(params[:message])
 message_all.attachments.each do |a|
 attachments.each do |a|
 .attachments.build(
   :attachment => a
  )
 end
end

它错误:NoMethodError(undefined methodrewind’for#)`
附件是模型,附件是回形针

想法?是否有不同的方法将附件= a传递给回形针?

我尝试了另一种方法,创建一个临时文件:

tempfile = File.new("#{Rails.root.to_s}/tmp/#{a.filename}","w+")
tempfile << a.body
tempfile.puts
attachments.build(
:attachment => File.open(tempfile.path) )

tempfile的问题是没有扩展的文件“blah”而不是“blah.png”正在打破paperclip,这就是为什么我要避免使用tempfile.并且创建身份错误,imagemagick不知道它们是什么而不是ext.

非常感谢任何关于此的建议.

解决方法

您使用的方法的问题是它们不包含回形针的所有必要信息,如内容类型和原始文件名.我曾经写了一篇关于这篇文章的 blog post,以及如何伪造格式并使用电子邮件附件作为回形针附件.

底线是这样做:

file = StringIO.new(attachment)
file.class.class_eval { attr_accessor :original_filename,:content_type }
file.original_filename = attachment.filename
file.content_type = attachment.mime_type

总结

以上是编程之家为你收集整理的ruby-on-rails – 解析电子邮件附件w回形针 – 可能没有临时文件?全部内容,希望文章能够帮你解决ruby-on-rails – 解析电子邮件附件w回形针 – 可能没有临时文件?所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478
编程之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!