Emails - html not rendering

Hi,

i am using ruby 1.8.7 and rails 2.3.3
i can send emails using gmail smtp
my config is:

ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.default_charset = ‘utf-8’
ActionMailer::Base.smtp_settings = {
:enable_starttls_auto => true,
:address => “smtp.gmail.com”,
:port => 587,
:domain => “gmail.com”,
:authentication => :plain,
:user_name => “[email protected]”,
:password => “bla”,
:default_content_type => “text/html”
}

I am composing email using tiny mce editor
On sending it…

I see it on gmail as

lndglds

sfglfs

 

instead of the html rendered.

Does any one kno why?

how do you send the email? Is there a controller action that sends the
email?

Ya,

Controller Code
def sendmail
recipient = params[:email][:recipient]
subject = params[:email][:subject]
message = params[:email][:message]
cc = “”
Emailer.deliver_contact(recipient, subject, message,
“Administrator”, cc)
if request.xhr?
flash[:notice] = ‘Error sending message. Please try again
later.’
else
flash[:notice] = ‘Message sent successfully!’
end
redirect_to :back
rescue
flash[:notice] = ‘Error sending message. Please try again later.’
redirect_to :back
end

Which goes to Model code

def contact(recipient, subject, message, sent_by, cc, sent_at =
Time.now)
@subject = subject
@cc = cc
@recipients = recipient
@sent_by = sent_by
@from = ‘[email protected]
@sent_on = sent_at
@body[“title”] = ‘This is title’
@body[“email”] = ‘[email protected]
@body[“message”] = message
@headers = {}
end

Can anyone please advise on how to send emails in HTML format instead
of plain text?

Next time, try reading the documentation first. From the
ActionMailer::Base docs:

To send mail as HTML, make sure your view (the .erb file) generates
HTML and set the content type to html.
class MyMailer < ActionMailer::Base
def signup_notification(recipient)
recipients recipient.email_address_with_name
subject “New account information”
from “[email protected]
body :account => recipient
content_type “text/html”
end
end

–Matt J.

Ritvvij wrote:

Can anyone please advise on how to send emails in HTML format instead
of plain text?

Just don’t. HTML belongs on Web pages, not in e-mail.

(If you really need to, I believe you will have to set a content header
on the e-mail so that the HTML is parsed. But there are few good
reasons to send HTML mail in the first place.)

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Thank you.

If you want to send a HTML email have a look at the Rails
documentation it is very well documented. Here is a snip:

Mailer views are located in the app/views/name_of_mailer_class
directory. The specific mailer view is known to the class because it’s
name is the same as the mailer method. So for example, in our example
from above, our mailer view for the welcome_email method will be in
app/views/user_mailer/welcome_email.text.html.erb for the HTML version
and welcome_email.text.plain.erb for the plain text version.

The action mailer basics should have all you need…
http://guides.rubyonrails.org/action_mailer_basics.html

But the short version is in the naming of the views text.html.erb and
text.plain.erb and then you have the content_type that can be set too
“text/html”, Rails send multipart emails if you have a text and html
view.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs