Hi everyone I am sending mails with rails in German. The Problem is that the German letters ä,ü,ö are arriving correctly at the receiver. When the subject contains the word Für the receiver gets Für Does anybody knows this issue? Thanks in advance. Adam -- Posted via http://www.ruby-forum.com/.
Adam Meyer wrote:> Hi everyone > > I am sending mails with rails in German. The Problem is that the German > letters ä,ü,ö are arriving correctly at the receiver. > > When the subject contains the word > > Für > > the receiver gets > > Für > > Does anybody knows this issue?This is strange. ActionMailer (or is it TMail?) should encode this correctly like =?utf-8?Q?=C3=84=C3=96=C3=9C?= (this is ÄÖÜ). For me it does it very well. What version do you use and what is your code? Regards, T. -- Posted via http://www.ruby-forum.com/.
T. N.t. wrote:> Adam Meyer wrote: >> Hi everyone >> >> I am sending mails with rails in German. The Problem is that the German >> letters ä,ü,ö are arriving correctly at the receiver. >> >> When the subject contains the word >> >> Für >> >> the receiver gets >> >> Für >> >> Does anybody knows this issue? > > This is strange. ActionMailer (or is it TMail?) should encode this > correctly like =?utf-8?Q?=C3=84=C3=96=C3=9C?= (this is ÄÖÜ). For me it > does it very well. What version do you use and what is your code? > > Regards, T.I am riding on 2.2.2 with Actionmailer and my code is def invoice(kwiker, url, name) setup_email(kwiker) @subject += ''Rechnung für Bestellung bei kwikit.de Grusskarten'' @body[:url] = "http://#{APP_CONFIG[''site_host'']}/" part :content_type => "text/plain", :body => render_message("invoice.html.erb", body) attachment :content_type => "application/pdf", :body => File.read(url), :filename => name end and this is in my production.rb ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.perform_deliveries = true ActionMailer::Base.raise_delivery_errors = true ActionMailer::Base.default_charset = "utf-8" -- Posted via http://www.ruby-forum.com/.
Adam Meyer wrote:> ... > I am riding on 2.2.2 with Actionmailer and my code isI have 2.3.4; maybe it''s a new feature that the headers are quoted automatically. For now you could do it by hand. Somewhere in the TMail module must be the function to make RFC 2231 headers. I can''t find it now. So a temporary solution was: @subject = "=?utf-8?Q?#{[@subject].pack("M").chomp}?=" A more advanced function would break longer strings into multiple lines. Hope this helps, T. -- Posted via http://www.ruby-forum.com/.
T. N.t. wrote:> Adam Meyer wrote: >> ... >> I am riding on 2.2.2 with Actionmailer and my code is > > I have 2.3.4; maybe it''s a new feature that the headers are quoted > automatically. > > For now you could do it by hand. Somewhere in the TMail module must be > the function to make RFC 2231 headers. I can''t find it now. So a > temporary solution was: > > @subject = "=?utf-8?Q?#{[@subject].pack("M").chomp}?=" > > A more advanced function would break longer strings into multiple lines. > > Hope this helps, T.hmm... but its not only in the subject. its in body too. I am scared to update my rails, I dont want my app to break down completely. -- Posted via http://www.ruby-forum.com/.
2009/11/5 Adam Meyer <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>:> > T. N.t. wrote: >> Adam Meyer wrote: >>> ... >>> I am riding on 2.2.2 with Actionmailer and my code is >> >> I have 2.3.4; maybe it''s a new feature that the headers are quoted >> automatically. >> >> For now you could do it by hand. Somewhere in the TMail module must be >> the function to make RFC 2231 headers. I can''t find it now. So a >> temporary solution was: >> >> @subject = "=?utf-8?Q?#{[@subject].pack("M").chomp}?=" >> >> A more advanced function would break longer strings into multiple lines. >> >> Hope this helps, T. > > > hmm... but its not only in the subject. its in body too. > > I am scared to update my rails, I dont want my app to break down > completely.You should not be scared to try an update, specify version 2.2.2 in environment.rb (or freeze 2.2.2 into the app), install the later version of rails and modify your app on a branch in your version control system (I prefer git) so you can experiment without affecting your working code. Then when all is working on the branch simply merge it into the trunk. Colin Colin
Adam Meyer wrote:> hmm... but its not only in the subject. its in body too.I don''t know what @body[:url] is, but for part :content_type => "text/plain", :body => render_message("invoice.html.erb", body) you probably should say :content_type => ''text/plain; charset=utf-8'' T. -- Posted via http://www.ruby-forum.com/.
T. N.t. wrote:> Adam Meyer wrote: >> hmm... but its not only in the subject. its in body too. > > I don''t know what @body[:url] is, but for > > part :content_type => "text/plain", > :body => render_message("invoice.html.erb", body) > > you probably should say :content_type => ''text/plain; charset=utf-8'' > > T.@body[:url] is just a value I want to use in the email template. Your solution might work in the body, but what is with the subject? -- Posted via http://www.ruby-forum.com/.
Adam Meyer wrote:> T. N.t. wrote: >> Adam Meyer wrote: >>> hmm... but its not only in the subject. its in body too. >> >> I don''t know what @body[:url] is, but for >> >> part :content_type => "text/plain", >> :body => render_message("invoice.html.erb", body) >> >> you probably should say :content_type => ''text/plain; charset=utf-8'' >> >> T. > > @body[:url] is just a value I want to use in the email template. > Your solution might work in the body, but what is with the subject?As I already wrote: @subject = "=?utf-8?Q?#{[@subject].pack("M").chomp}?=" Didn''t you try it? T. -- Posted via http://www.ruby-forum.com/.
Adam Meyer wrote: [...]> I am scared to update my rails, I dont want my app to break down > completely.That''s why you have comprehensive automated tests! Just make sure that all tests pass after you upgrade. (You *do* have tests, right? If not, write some right away.) Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/.
T. N.t. wrote:> Adam Meyer wrote: >> T. N.t. wrote: >>> Adam Meyer wrote: >>>> hmm... but its not only in the subject. its in body too. >>> >>> I don''t know what @body[:url] is, but for >>> >>> part :content_type => "text/plain", >>> :body => render_message("invoice.html.erb", body) >>> >>> you probably should say :content_type => ''text/plain; charset=utf-8'' >>> >>> T. >> >> @body[:url] is just a value I want to use in the email template. >> Your solution might work in the body, but what is with the subject? > > As I already wrote: > > @subject = "=?utf-8?Q?#{[@subject].pack("M").chomp}?=" > > Didn''t you try it? > > T.I don''t know what is happening in you code, but it works. Thanks! -- Posted via http://www.ruby-forum.com/.
Adam Meyer wrote:> I don''t know what is happening in you code, but it works. > Thanks!Honestly, I also don''t understand this pack command, but what happens is, that it encodes the string as quoted-printable. In =?utf-8?Q?string? utf-8 is obviously the charset/encoding, Q is the way the bytes are represented with 7-bit characters, which is quoted-printable (Q) or base64 (B) and then comes obviously the string. So instead of that cryptic [''string''].pack("M").chomp you could also do "=?utf-8?B?#{Base64.b64encode(@subject).chomp}?=" But quoted-printable is more adequate for european texts. T. -- Posted via http://www.ruby-forum.com/.