我需要将 Outlook EWS 电子邮件及其附件转发到 Rails 服务器。
我使用 Viewpoint gem 获得的附件作为Viewpoint::EWS::Types::FileAttachment
对象返回。
如何使用rest-client
库将这些附件传递到 Rails 服务器?
我需要将 Outlook EWS 电子邮件及其附件转发到 Rails 服务器。
我使用 Viewpoint gem 获得的附件作为Viewpoint::EWS::Types::FileAttachment
对象返回。
如何使用rest-client
库将这些附件传递到 Rails 服务器?
我设法通过使用 a 上传文件StringIO
并给它一个:path
# email is a Viewpoint::EWS::Types::Message
# email_endpoint is a RestClient::Resource
attachments = email.attachments.map do |attachment|
file = StringIO.new(Base64.decode64(attachment.content))
file.class.class_eval { attr_accessor :original_filename, :content_type, :path }
file.original_filename = attachment.file_name
file.content_type = attachment.content_type
file
end
response = email_endpoint.post(
email: {
subject: email.subject,
attachments: attachments
}
)
该rest-client
库将自动处理响应:path
和:read
作为文件的对象,并使用多部分上传。
然后每个附件在 Rails 中显示为ActionDispatch::Http::UploadedFile
具有正确文件名的 。