3

PDFファイルの添付ファイルを含むactionmailerを含む電子メールを送信するための正しい構文は何ですか?TLSプラグインを使用してGmailforSMTPを使用しています。これが私がこれまでに持っているものです(そしてこれのバリエーションも試しました):

**lead_mailer.rb:**

  def auto_response(lead)
    recipients  lead.email
    subject     "Information"
    body        :recipient => lead.first_name
    from        "me@mydomain.com"
    attachment  "application/pdf" do |a|
                a.body = File.read(RAILS_ROOT + "/public/files/Datasheet.pdf")
    end
    attachment  "application/pdf" do |a|
                a.body = File.read(RAILS_ROOT + "/public/files/OtherSheet.pdf")                
    end
  end

**lead_observer.rb:**

class LeadObserver < ActiveRecord::Observer
  def after_save(lead)
    mail = LeadMailer.create_auto_response(lead)
    LeadMailer.deliver(mail)
  end
end

問題は、添付ファイルを送信することですが、それらを開くと正しく表示されますが、「名前なし」として表示されます。ただし、メールの本文はまったく表示されません。私は単純なこと、間違ったことをしていると確信しています。

4

1 に答える 1

3

さて、私は少し離れて戻ってきて、もう少しグーグルで答えを得ました!

API から:

電子メールに添付ファイルまたはパーツが追加されている場合、暗黙的なテンプレート レンダリングは実行されません。これは、電子メールに各パートを手動で追加し、電子メールのコンテンツ タイプを multipart/alternative に設定する必要があることを意味します。

メインのメーラー メソッドでは、body を切り替えて、この明示的なレンダリングを追加しました。注-マルチパート/代替をスキップして機能しました。おそらく、プレーンテキストの電子メールを送信しているためです。

part        :body => render_message('auto_response', :recipient => lead.first_name) 

添付ファイルの名前付けの問題については、次のようにしました。

attachment  "application/pdf" do |a|
                a.body = File.read(RAILS_ROOT + "/public/files/OtherSheet.pdf") 
                a.filename = "Othersheet.pdf"  
end
于 2009-02-09T21:48:40.083 に答える