当我发送带有附加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')
我遇到了同样的问题。我已经通过以下方式更正了它
1)根据ActionMailer指南,您需要将视图文件制作成应用程序/视图/[action_mailer_model_name]/[method_name]
以下是指南的参考: http://api.rubyonrails.org/classes/ActionMailer/Base.html
2)操作邮件程序足够智能,可以在读取文件时自动识别内容类型。因此,无需在邮件函数中显式传递"application/pdf"。
希望这些信息有助于解决您的问题
也遇到了同样的问题解决方案是: 设置发送邮件前的附件功能。
代码附在下面:
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