<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-
Type" />
</head>
<body>
This is an HTML email: <br />
<%= @body %>
<br />
End of the body.
</body>
</html>
When I receive the email in Gmail, here is all I see:
This is an HTML email:
End of the body.
Nothing is outputted between those 2 sentences! Any ideas as to
what's happening? I verified that in the mailer method, @body has a
value. I'm using Rails 3.0.7 and Ruby 1.9.2 and following this guide:
This is an HTML email: <br />
<%= @body %>
<br />
End of the body.
Hmmm… I just checked as I am doing just about the same thing. Your code looks ok, the only difference with mine is I am naming the class variable @body_text. I am wondering if @body for you might be getting renamed somewhere? Its a long shot but try renaming the variable. Also, you can put a break point inside the mailer view I think — <%= debugger; @body %>… then you can really see what is getting in there.
David, that's exactly what I did to solve the problem! I renamed the
instance variable and started seeing my string inserted into the
email. Using @body was definitely an issue for some reason.
David, that’s exactly what I did to solve the problem! I renamed the
instance variable and started seeing my string inserted into the
email. Using @body was definitely an issue for some reason.
Great… I vaguely recall that I had the same issue, hence the name. I think I decided that @body must be reserved or used by rails somewhere. Anyhow, glad it helped!