[LRUG] email attachments (generated from a template) in rails
Ed Davey
ed at veryreal.co.uk
Tue Feb 26 10:00:23 PST 2008
I have two related questions about attaching a file in rails: I want
to generate a delivery note in html from an rhtml template and then
attach it to a plain text email.
It basically works:
@subject = "Paperfly order # #{order.id}"
@recipients = 'test at paperfly.co.uk'
@from = 'sales at paperfly.co.uk'
@sent_on = Time.now
@body["order"] = order
part :content_type => "text/plain",
:body => render_message("packing_note", :order => order)
rhtml_file = "<h1>Packing Note for order number #{order.id}</h1>
etc etc"
attachment :content_type => "text/html",
:body => rhtml_file,
:filename => "delivery_note_for_order_#{order.id}.html"
1) where do I put my rhmtl template other than inline?
------------------------------------------------------
If I try:
rhtml_file = IO.read(RAILS_ROOT + "/app/views/order_mailer/
packing_note_attachment.rhtml") then all my string interpolation gets
messed up:
"<h1>Packing Note for order number <%= \#{order.id} %></h1> etc
etc..."
2) how do I test emails with attachments?
-----------------------------------------
When I do something like:
assert_match(/9103/, response.body)
The test reports that there's nothing there even though the match
*is* there in the log to rail_mail and in reality if I send a actual
test message through. (I understand that there was (is?) a bug in 1-
ish Rails which is why I'm using "part" explicity as per the note in
AWDWR. I'm using Rails 1.2.3 here.)
What is the syntax to check for the existence of an attachment with a
certain name, for example?
Thanks for any pointers.
ED
More information about the Chat
mailing list