Rails once again is smarter than me. However it sure did a
good job
of covering it up. My issue is if I used the render_message
to
specify the template file to use, the Content-Type of the
email was
being set to multipart/mixed instead of
multipart/alternative. I
found a creative but very wrong way to fix this by
specifying a
default_content_type in my environment.rb file, which fixed
my one
email problem, then broke all of my text/plain only emails.
I opened up the rails/actionmailer/lib/actionmailer/base.rb
and found
that there is a :template variable that you can set, which
states:
# Specify the template name to use for current message. This
is the "base"
# template name, without the extension or directory, and may
be used to
# have multiple mailer methods share the same template.
It should also say, "or allow one mailer method to use
multiple
templates". This is not in the API docs (along with a
few other
goodies), so I will try to help get a fix in for this.
So to finish things off I set the value of :template and the
rails
magic grabbed the correct types based on the file names
(text.html.rhtml, text.plain.rhtml, etc...). My action
ended up
looking much DRY'er.
def newsletter(email_address, subject, template_to_use)
from = "no-reply nothing.com"
subject = subject
recipients = email_address
template = template_to_use
end
Hope this helps someone else.
Cheers,
Ben
On 8/30/06, Ben Reubenstein <benr x-cr.com> wrote:
> Hello ~
>
> I have a working ActionMailer Action that takes the
template to use as
> an argument so I have one action that handles multiple
emails. The
> email sends just fine, and the correct email templates
are used, but
> ActionMailer is throwing in its own text/plain section
in addition to
> the one I specify. Does anyone have any ideas on why
this might be
> occuring, when I am specificially specifying a
"text/plain" part?
>
> Thx in advance, here is the code:
>
> notifier.rb code
> ------------------
> def dynamic_mailer(email_address, subject,
template_to_use)
> from = "no-reply nothing.com"
> subject = subject
> recipients = email_address
>
> part :content_type => "text/plain",
:body =>
> render_message(template_to_use +
".text.plain.rhtml", :foo => "foo")
>
> part :content_type => "text/html",
:body =>
> render_message(template_to_use +
".text.html.rhtml", :foo => "foo")
> end
>
> resulting email contains two text/plain sections
> ------------------
> --mimepart_44f5dbaadb3d0_b20127aae466a6
> Content-Type: text/plain
> Content-Transfer-Encoding: Quoted-printable
> Content-Disposition: inline
>
>
> --mimepart_44f5dbaadb3d0_b20127aae466a6
> Content-Type: text/plain; charset=utf-8
> Content-Transfer-Encoding: Quoted-printable
> Content-Disposition: inline
>
> This is an HTML Rich Email. You can view it online
here:
>
> http://www.someurl.co
m/somefile
>
> --mimepart_44f5dbaadb3d0_b20127aae466a6
> Content-Type: text/html; charset=utf-8
> Content-Transfer-Encoding: Quoted-printable
> Content-Disposition: inline
>
> <html>
> <head>
> </head>....
>
> --
> Ben Reubenstein
> 303-947-0446
> http://www.benr75.com
>
--
Ben Reubenstein
303-947-0446
http://www.benr75.com
_______________________________________________
Rails mailing list
Rails lists.rubyonrails.org
h
ttp://lists.rubyonrails.org/mailman/listinfo/rails
|