Impossibile inviare XLSX come allegato in Rails Mailer
-
13-12-2019 - |
Domanda
Sto cercando di inviare un'email contenente un allegato file creato dall'utente.
attachments[document.display_name] = File.read(document.public_filename)
.
funziona nella maggior parte delle condizioni (incluso .docx, ma non riesce per i file .xlsx con l'errore:
invalid byte sequence in UTF-8
.
Sto usando attachment_fu per caricare gli allegati e ritardardo_job per differire l'invio delle e-mail, tuttavia il file che sto cercando di attaccare sembra OK, e posso aprirlo con successo all'esterno dell'applicazione.
Ho anche visto un suggerimento per cambiare il codice come segue, ma non sembra aiutare: includere un extra.
attachments[document.display_name] = { :content => File.read(document.public_filename), :transfer_encoding => :binary }
.
Come posso effettuare il codice del codice per tutti i tipi di allegati?
Soluzione
È necessario specificare la modalità o la codifica per consentire a leggere il file come binario:
attachments[document.display_name] = File.read(document.public_filename, :mode => 'rb')
.
o
attachments[document.display_name] = File.read(document.public_filename, :encoding => 'BINARY')
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow