Reputation: 65183
Using rails 2.3.14
my email erb: data.html.erb:
<% @data.each do |error| %>
<table>
<% error.each_pair do |k, v| %>
<tr>
<td>
<%= k %>
</td>
<td>
<%= ap v %>
</td>
</tr>
<% end %>
</table>
<br />
<% end %>
I can receive the email, but when I do, it displays as plain text -- rather than rendering the HTML.
Action Mailer config:
config.action_mailer.raise_delivery_errors = true
# Send emails during development
config.action_mailer.perform_deliveries = true
ActionMailer::Base.delivery_method = :sendmail
UPDATE: had to specify the content type in my delivery method:
def data(data, sent_at = Time.now)
Time.zone = 'Eastern Time (US & Canada)'
content_type 'text/html'
subject "[#{RAILS_ENV}] An error has occurred - #{Time.now.to_s("%B %d, %Y")}"
recipients "[email protected]"
from AppConfig['from_email']
sent_on sent_at
@body = {:data => data}
end
Upvotes: 6
Views: 7540
Reputation: 5291
From d11wtq's comment:
Specify the content_type
as text/html
:
ActionMailer::Base.mail(
content_type: "text/html",
from: "[email protected]",
to: "[email protected]",
subject: "This is a test",
body: "<h2>HTML Email Test</h2><p>This is a <b>test</b>.</p>"
).deliver_now
Upvotes: 7
Reputation: 3802
It seems as though rails may be somehow caching the text template under certain circumstances.
I just
cray.
Upvotes: 1