Cela semble assez simple, mais je n'ai pas réussi à le faire fonctionner. Les fichiers fonctionnent correctement depuis S3 sur l'application Web, mais lorsque je les envoie par courrier électronique via le code ci-dessous, les fichiers sont corrompus.ActionMailer - Comment ajouter une pièce jointe?
Stack App: 3 rails, Heroku, + s3 paperclip
Voici le code:
class UserMailer < ActionMailer::Base
# Add Attachments if any
if @comment.attachments.count > 0
@comment.attachments.each do |a|
require 'open-uri'
open("#{Rails.root.to_s}/tmp/#{a.attachment_file_name}", "wb") do |file|
file << open(a.authenticated_url()).read
attachments[a.attachment_file_name] = File.read("#{Rails.root.to_s}/tmp/#{a.attachment_file_name}")
end
end
end
mail(:to => "#{XXXX}",
:reply_to => "XXXXX>",
:subject => "XXXXXX"
)
a.authenticated_url() me donne juste une URL à s3 pour obtenir le fichier (de tout type), J'ai vérifié cela, fonctionne bien. Quelque chose à voir avec la façon dont je sauvegarde le fichier temporaire doit être de briser l'attachement ActionMailer.
Des idées?
pouvez-vous confirmer que le fichier tmp téléchargé à partir de S3 est ok? – ffoeg