Forum: Rails Germany ActionMailer Attachment zerschiesst Body

Db78660a3f368ffd3dae9b18aff7854e?d=identicon&s=25 Stefan Feigl (Guest)
on 2009-06-27 02:06
(Received via mailing list)
Hi.

Hab mal wieder ein Problem. Diesmal mit dem ActionMailer
Ich will eine Newsletter versenden. Der eigentliche Newsletter wird als
Pdf immer mitgeschickt. Doch das System wird auch für kurze InfoMails
verwendet werden ohne Attachment.

Hab dafür 2 Methoden einmal mit und einmal ohne Attachment.




class NewsletterMailer < ActionMailer::Base
  def newsletter_with_attachment(data, sent_at = Time.now)
    subject       "Newsletter - #{data[:newsletter].title}"
    recipients    data[:recipient].email
    from          'bla@bla.com'
    sent_on       sent_at

    content_type    "multipart/alternative"

        part content_type => "text/html",
          :body => render_message("newsletter_with_attachment",
          :newsletter => data[:newsletter],
          :recipient => data[:recipient])

    attachment    "application/octet-stream" do |a|
                      a.body = data[:attachment].read
                      a.filename = data[:attachment].original_filename
                  end
  end

  def newsletter_without_attachment(data, sent_at = Time.now)
    subject       "Newsletter - #{data[:newsletter].title}"
    recipients    data[:recipient].email
    from          'bla@bla.com'
    sent_on       sent_at
    body          :newsletter => data[:newsletter], :recipient =>
data[:recipient]
    content_type  'text/html'
  end
end


In meinem views/newsletter_mailer/ hab ich 2 Dateien:

newsletter_with_attachment.html.erb
newsletter_without_attachment.html.erb


Jedenfalls funktioniert das ohne Attachment anstandslos.
Bei der mit attachment wird zwar das attachment mitgesendet aber der
body aus dem erb template wird nicht angezeigt. wenn ich das attachment
auskommentiere schon...

hatte in einem vorigen versuch auch schon probiert es so zu machen mit
attachment ohne sonderlichen erfolg:




def newsletter_without_attachment(data, sent_at = Time.now)
    subject       "Newsletter - #{data[:newsletter].title}"
    recipients    data[:recipient].email
    from          'bla@bla.com'
    sent_on       sent_at
    body          :newsletter => data[:newsletter], :recipient =>
data[:recipient]
    content_type  'text/html'

    attachment    "application/octet-stream" do |a|
                      a.body = data[:attachment].read
                      a.filename = data[:attachment].original_filename
                  end
  end

Benutze rails 2.3.2

hab den content type umgestellt von

multipart/alternative

auf

multipart/mixed

und dann hat er mir zumindest den body angezeigt und das attachment war
auch da. jedoch zeigte er mir im body sämtliche html tags an. hab aber
doch beim part explizit stehn das der content_type text/html ist?

jmd eine idee?

lg
This topic is locked and can not be replied to.