3

当我发送带有附加 pdf 文件的电子邮件时,电子邮件仅显示一个名为“Noname”的文件。该文件本身是电子邮件的多部分部分,带有 base64 附件 pdf。如何发送 PDF 以使其作为附件出现并且不会损坏电子邮件?

这是我的代码:

attachments['126539_statistics.pdf'] = File.read("app/assets/pdfs/126539_statistics.pdf")
mail(:to => email, :subject => subject, :body => message,  :content_type => 'application/pdf') 
4

2 回答 2

8

我遇到了同样的问题。我已经通过以下方式纠正了它

1)根据 ActionMailer 指南,您需要将视图文件放入 app/views/[action_mailer_model_name]/[method_name]

这是指南的参考:http: //api.rubyonrails.org/classes/ActionMailer/Base.html

2) Action Mailer 足够智能,可以在读取文件时自动识别内容类型。因此,无需在您的邮件功能中明确传递“应用程序/pdf”。

希望,这些信息有助于解决您的问题

于 2012-10-10T09:58:48.330 回答
4

也遇到了同样的问题,解决方法是:发送邮件前设置附件功能。

代码附在下面:

 attachments["invoice_#{invoice.bill_date.strftime('%B-%Y')}.pdf"] = WickedPdf.new.pdf_from_string(
        render_to_string  pdf: 'project_report.pdf',
                          template: 'users/_invoice.html.erb'
    )
    mail(to: email , from: from, subject: subject) do |format|
          format.html
      end
于 2018-06-29T07:16:03.323 回答