Mailer template encoding error ( Spanish characters) not valid US-ASCII (obviously) ...

Some of my Mailer templates are in spanish, I get this error message : /usr/local/rvm/gems/ruby-1.9.2-p136@rails3/gems/actionpack-3.0.5/lib/ action_view/template/handlers/erb.rb:129:in `valid_encoding': Your template was not saved as valid US-ASCII. Please either specify US- ASCII as the encoding for your template in your text editor, or mark the template with its encoding by inserting the following as the first line of the template: (ActionView::Template::Error)

# encoding: <name of correct encoding>.

The source of your template was:

... Recibes este mensaje porque has mandado un email a <%= @receiver %> PERDONA LA DEMORA Estamos actualizando la cantidad de registraciones regaladas. ...

I coded the Notifier like this :

class Notifier < ActionMailer::Base   default :charset => "utf-8" ..         mail(:to => destination, :subject => subject, :from => from) do |format|           format.text(:content_transfer_encoding => "base64")           format.html(:content_transfer_encoding => "base64")         end

but this doesn't get rid of the error.... how & where should I write the encoding information

That's something else, it sets charset header on the outgoing message. What ruby 1.9 is complaining about is the encoding of your erb file. You need to do what the rails error message says and stick

<%# encoding: utf-8 %>

on the first line of your template (assuming utf-8 is what your template is written in)


Thanks Fred

you mean it's a Ruby 1.9 issue, not Rails... ( this is why I could not find any doc on it in Rails API... maybe ) and of course it happen only in plain-text template...

I still do not understand why this error raised only when the script was run from the cron task ... and never when running the script from the command-line in the remote server console.... any idea on that ?

I read this post in forum, lot of info ... thanks it's solved now ....