ActionMailer在附加文件时抛出错误

时间:2013-11-14 11:21:49

标签: ruby-on-rails ruby ruby-on-rails-3 actionmailer

我有ActionMailer工作并发送普通电子邮件。 但是当我尝试附加文件时,我得到:#<Encoding::UndefinedConversionError: "\xFF" from ASCII-8BIT to UTF-8> - nil

我这样做的代码片段是:

mail(subject: "test test",
         from: "o@myemail.com",
         to: ["b@reciepient.com"],
         date: Time.now,
         content_type: "text/html",
         attachments[file[:filename]] => file[:data] )

有什么建议可能出错?

谢谢!

2 个答案:

答案 0 :(得分:2)

当您尝试在不使用二进制模式的情况下附加文件处理程序但文件不是文本文件时,通常会生成此错误。

我无法在您创建文件处理程序的代码中看到。您应该使用wb打开它。

File.open(path, 'wb')

而不是

File.open(path, 'w')

请注意,如果附件不是文本文件,则content_type也是错误的。

您附加的文件类型是什么?

答案 1 :(得分:1)

试试这个

class Mailer < ActionMailer::Base

def my_mailing_method
  attachments[file[:filename]] => file[:data]
  mail(subject: "test test",
         from: "o@myemail.com",
         to: ["b@reciepient.com"],
         date: Time.now,
         content_type: "text/html")
end