【问题标题】:Rails 3.0.17 sending inline attachments instead of regular onesRails 3.0.17 发送内联附件而不是常规附件
【发布时间】:2012-12-19 10:36:24
【问题描述】:

所以,我们刚刚在 Ruby 1.8.7 企业版的基础上将我们的项目升级到 Rails 3.0.17(请不要问为什么这个特定版本,只是这样)。

我有方法可以生成 CSV 数据并通过电子邮件将其作为文件发送。

# contact_mailer.rb
def send_payments_report
  attachments["report.csv"] = {
    :content => Payment.generate_csv_report,
    :mime_type => "text/csv"
  }

  mail(
    :from => "from@example.com",
    :subject => "Payments report",
    :to => "to@example.com"
  )   
end

这是它返回的内容:

=> #<Mail::Message:2231891440, Multipart: true, Headers: <Date: Wed, 19 Dec 2012 11:48:05 +0200>, <From: from@example.com>, <To: to@example.com>, <Message-ID: <50d18d555dcdc_2269838ab93812784@artem.local.mail>>, <Subject: Payments report>, <Mime-Version: 1.0>, <Content-Type: multipart/mixed; >, <Content-Transfer-Encoding: 7bit>>

电子邮件本身显示为没有附件的纯文本:

--
Date: Wed, 19 Dec 2012 11:48:05 +0200
Mime-Version: 1.0
Content-Type: text/csv;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=report.csv
Content-ID: <50d18d555dcdc_2269838ab93812784@artem.local.mail>

"customer id","reference nr","invoice id","invoice type","invoice sum","sum paid","payment date"
"1035","010294","7113","Fine","250.00","100.00","2012-11-15"
"1035","010294","6132","Fine","250.00","250.00","2012-11-15"
"1035","010294","5241","Fine","850.00","650.00","2012-11-15"
--

我尝试附加现有文件,但显示方式相同。它在 Rails 2.3.9 上完美运行。有人可以帮忙吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 actionmailer email-attachments


    【解决方案1】:

    我似乎已经解决了这个问题。 这里我如何调用mail 方法:

    mail(
      :from => "from@example.com",
      :subject => "Payments report",
      :to => "to@example.com"
    ) do |format|
        format.text {render :text => ""}
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-05
      • 2011-11-04
      • 2012-02-17
      • 2013-05-09
      • 2013-01-10
      • 2019-03-19
      • 1970-01-01
      • 2019-02-21
      相关资源
      最近更新 更多