Rails 5.0.1 - 带有 MailGun 的 ActionMailer,在直接附加 base64 字符串时为文件名设置 'noname'
Rails 5.0.1 - ActionMailer with MailGun, setting 'noname' for filename when directly attaching base64 string
我已经阅读了完整的官方指南 here 以及关于 Rails 3 和 Rails 4 的关于 SO 的大约 5 个问题。
This question 用于 Rails 5,但他使用的是实际文件,而不是编码字符串。
这是我的邮件程序代码(是的,我有两个视图设置)。电子邮件顺利通过,并附有 PDF。
def pdf_quote(proposal)
@proposal = proposal
email_with_name = %("#{@proposal.first_name} #{@proposal.last_name}" <#{@proposal.email}>)
filename = "QD-#{@proposal.qd_number}_#{@proposal.last_name}.pdf"
attachments[filename] = {
mime_type: 'application/pdf',
encoding: 'Base64',
content: @proposal.pdf_base64
}
mail(
to: email_with_name,
from: 'Floorbook UK <email address>',
subject: 'Your Personal Flooring Quote is attached',
sent_on: Time.now
)
end
在 gmail 中,附件称为 'noname',在邮箱中称为 'pb_mime_attachment.pdf'
如何让 ActionMailer 使用我提供的文件名?
请注意,我使用的是 MailGun (mailgun-ruby gem 1.1.4) 发送电子邮件,所以这里可能是 gem 的问题。
原来是第 3 方 mailgun 的一个错误-ruby gem.
我向他们提出了一个错误,详细信息如下:
https://github.com/mailgun/mailgun-ruby/issues/82
在 1.1.5 版本中已修复(我测试过)。
我已经阅读了完整的官方指南 here 以及关于 Rails 3 和 Rails 4 的关于 SO 的大约 5 个问题。
This question 用于 Rails 5,但他使用的是实际文件,而不是编码字符串。
这是我的邮件程序代码(是的,我有两个视图设置)。电子邮件顺利通过,并附有 PDF。
def pdf_quote(proposal)
@proposal = proposal
email_with_name = %("#{@proposal.first_name} #{@proposal.last_name}" <#{@proposal.email}>)
filename = "QD-#{@proposal.qd_number}_#{@proposal.last_name}.pdf"
attachments[filename] = {
mime_type: 'application/pdf',
encoding: 'Base64',
content: @proposal.pdf_base64
}
mail(
to: email_with_name,
from: 'Floorbook UK <email address>',
subject: 'Your Personal Flooring Quote is attached',
sent_on: Time.now
)
end
在 gmail 中,附件称为 'noname',在邮箱中称为 'pb_mime_attachment.pdf'
如何让 ActionMailer 使用我提供的文件名?
请注意,我使用的是 MailGun (mailgun-ruby gem 1.1.4) 发送电子邮件,所以这里可能是 gem 的问题。
原来是第 3 方 mailgun 的一个错误-ruby gem.
我向他们提出了一个错误,详细信息如下: https://github.com/mailgun/mailgun-ruby/issues/82
在 1.1.5 版本中已修复(我测试过)。