我正在使用以下代码在 Rails 中发送电子邮件:
class InvoiceMailer < ActionMailer::Base
def invoice(invoice)
from CONFIG[:email]
recipients invoice.email
subject "Bevestiging Inschrijving #{invoice.course.name}"
content_type "multipart/alternative"
part "text/html" do |p|
p.body = render_message 'invoice_html', :invoice => invoice
end
part "text/plain" do |p|
p.body = render_message 'invoice_plain', :invoice => invoice
end
pdf = Prawn::Document.new(:page_size => 'A4')
PDFRenderer.render_invoice(pdf, invoice)
attachment :content_type => "application/pdf", :body => pdf.render, :filename => "factuur.pdf"
invoice.course.course_files.each do |file|
attachment :content_type => file.content_type, :body => File.read(file.full_path), :filename => file.filename
end
end
end
对我来说这似乎很好,并且电子邮件也像在 Gmail 网络界面中一样显示。但是,在 Mail(Apple 程序)中,我只收到 1 个附件(应该有 2 个)并且没有文本。我似乎无法弄清楚是什么原因造成的。
我从日志中复制了电子邮件:
发送邮件至 xxx@gmail.com 发件人:yyy@gmail.com 至:xxx@gmail.com 主题:Bevestiging Inschrijving Authentiek Spreken 哑剧版:1.0 内容类型:多部分/替代;边界=mimepart_4a5b035ea0d4_769515bbca0ce9b412a --mimepart_4a5b035ea0d4_769515bbca0ce9b412a 内容类型:文本/html;字符集=utf-8 内容传输编码:引用打印 内容处置:内联尊敬的先生
= --mimepart_4a5b035ea0d4_769515bbca0ce9b412a 内容类型:文本/纯文本;字符集=utf-8 内容传输编码:引用打印 内容处置:内联 尊敬的先生 * 富= --mimepart_4a5b035ea0d4_769515bbca0ce9b412a 内容类型:应用程序/pdf;名称=factuur.pdf 内容传输编码:Base64 内容处置:附件;文件名=factuur.pdf JVBERi0xLjMK/////woxIDAgb2JqCjw8IC9DcmVhdG9yIChQcmF3bikKL1By b2R1Y2VyIChQcmF3bikKPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEK ………… MCBuIAp0cmFpbGVyCjw8IC9JbmZvIDEgMCBSCi9TaXplIDExCi9Sb290IDMg MCBSCj4+CnN0YXJ0eHJlZgo4Nzc1CiUlRU9GCg== --mimepart_4a5b035ea0d4_769515bbca0ce9b412a 内容类型:应用程序/pdf;名称=Spelregels.pdf 内容传输编码:Base64 内容处置:附件;文件名=Spelregels.pdf JVBERi0xLjQNJeLjz9MNCjYgMCBvYmoNPDwvTGluZWFyaXplZCAxL0wgMjEx NjYvTyA4L0UgMTY5NTIvTiAxL1QgMjEwMDAvSCBbIDg3NiAxOTJdPj4NZW5k ………… MDIwNzQ4IDAwMDAwIG4NCnRyYWlsZXINCjw8L1NpemUgNj4+DQpzdGFydHhy ZWYNCjExNg0KJSVFT0YNCg== --mimepart_4a5b035ea0d4_769515bbca0ce9b412a--