2
的Rails 3.0.11
紅寶石1.9.3dev(2011-09-23修訂33323)x86_64的Linux的]
郵件寶石訴2.2.19
後綴訴2.7 .0紅寶石上的ActionMailer接收字符編碼鐵軌發出
我管received emails to an actionmailer。除非收到的電子郵件沒有正確編碼,否則這通常運行良好。
我已經嘗試了多種方法,但始終以UTF-8錯誤中的無效字節序列結尾爲。
這是我嘗試正確編碼/強制正確的編碼中的ActionMailer:
email.text_part.decoded.force_encoding('UTF-8').encode('UTF-8', undef: :replace, invalid: :replace, replace: "")
這是我轉發郵件到我的應用程序在/ etc(內容/ aliases文件通過的建議Ruby on Rails的指南)
theaddress: "|/usr/local/rvm/bin/ruby-1.9.3-rc1 /var/www/myapp/script/rails runner -e mailer 'Mymailer.receive(STDIN.read)'"
我也試圖通過管道將郵件通過iconv第一
theaddress: "|iconv -t UTF-8 -c |/usr/local/rvm/bin/ruby-1.9.3-rc1 /var/www/myapp/script/rails runner -e mailer 'Mymailer.receive(STDIN.read)'"
我也使用Encding嘗試::轉換
Encoding::Converter.new("UTF-8//IGNORE", "UTF-8")
感謝任何的洞察力和幫助!
解決方案
我不得不添加以下到我的環境文件:
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
此外,我除去任何force_encoding和編碼方法。所以下面現在的作品:
email.text_part.decoded
你應該張貼您的解決方案作爲一個答案。 – 2012-07-19 12:25:57