Rails 5.0.1 - 带有MailGun的ActionMailer,在直接附加base64字符串时为filename设置'noname'

时间:2017-02-21 21:58:46

标签: ruby-on-rails actionmailer

我已阅读完整的官方指南here以及有关Rails 3和Rails 4描述此问题的大约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)发送电子邮件,因此它可能是错误的宝石。

1 个答案:

答案 0 :(得分:0)

事实证明这是第三方mailgun-ruby gem的错误。

我向他们提出了一个错误,以下是详细信息: https://github.com/mailgun/mailgun-ruby/issues/82

它在1.1.5版本中已修复(我测试过)。