电子邮件中的PDF附件称为“Noname”

当我发送附带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指南,您需要将视图文件制作成app / views / [action_mailer_model_name] / [method_name]

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

2)Action Mailer足够聪明,可以在读取文件时自动识别内容类型。 所以没有必要在你的邮件function中明确传递’application / pdf’。

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

同样经历过同样问题的解决方案是:在发送邮件function之前设置附件。

代码附在下面:

  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