0

そのため、Ruby 1.8.7 Enterprise Editionに加えて、プロジェクトを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"
--

既存のファイルを添付してみましたが、同じように表示されます。Rails2.3.9で完全に機能しました。誰かがそれを手伝うことができますか?

4

1 に答える 1

0

私はこの問題を解決したようです。ここでメソッドを呼び出すmail方法:

mail(
  :from => "from@example.com",
  :subject => "Payments report",
  :to => "to@example.com"
) do |format|
    format.text {render :text => ""}
end
于 2012-12-19T11:06:01.730 に答える