ActionMailer Layout on HTML version not Plain Text

I'm sending plain text and html emails by having multiple files for each email I send. For example, for my registration email I have a registration.text.plain.erb file and a registration.text.html.erb file. I want to use a layout for the html version of my emails. In my mailer I put:

class AccountsMailer < ActionMailer::Base   layout 'email'   ... end

Unfortunately rails seems to look for views/layouts/email.html.erb and uses that layout for both my HTML and plain text emails. When I name the file email.text.html.erb rails complains:

Missing layout layouts/email.erb ...

How do I set up action mailer so that it uses a layout only for the html version of emails?

Thanks

Is there really no way to do this? This pretty much makes actionmailer layouts useless if you are sending html emails with plain text alternatives.

Did you ever find an answer to this? I have the exact same problem.

claims you can use different content types (plain/html) but it doesn't work for me

Hi!

I just posted the exact same issue here before I saw this thread. It doesn't work for me on Rails 2.2.2.

I was really excited to see layouts in ActionMailer, but this is frustrating. *sigh*

-Danimal

(I'm poking around in the ActionMailer code to see if there is anything I can find)

BTW, looks like this has been a known bug for a little while: https://rails.lighthouseapp.com/projects/8994/tickets/1799-actionmailer-doesnt-set-template_format-when-rendering-layouts

(since January at least).

*sigh*

Hopefully someone will fix it. If I knew the internals of Rails better, I'd give it a go myself.

-Danimal

Woo hoo! Fix discovered!

http://blog.kreeti.com/rails/multipart-emails-with-mailer-templates

Whew! I wasted 4 hours last night trying to monkeypatch ActionMailer but I was futzing around in the wrong places.

I added Surendra's suggestion as a monkeypatch and it works great!

Ok, on to other stuff...

-Danimal