iconvライブラリではまったこと。
Rails-1.2.6で、ActionMailerを使って日本語(iso-2022-jp)でメール送信する場合は次のようにすればよいのだが、僕の環境では長〜〜い本文を送ろうとするとエラーになるという現象が発生した。
class Notifier < ActionMailer::Base def greeting(sent_at=Time.now) @recipients = "宛先メールドレス" @subject = "=?iso-2022-jp?B?#{Base64.encode64('グリーティング'.tojis)}?=" @body = render_message('greeting', {}).tojis @from = "送信元メールアドレス" @sent_on = sent_at @headers = {} end end
エラー内容は「Iconv::BrokenLibrary」と言っている・・・ 明らかにiconvライブラリがあやしい。
このときの僕のRails開発環境は次のようなもの。
- Windows XP SP2
- Ruby 1.8.6-p115-mswin
- Rails 1.2.6
- Libiconv DLL 1.10-20060516 for Windows (香り屋 — KaoriYaさんのがらくた置き場より)
で、この問題は同じく香り屋 — KaoriYaさんのがらくた置き場より「Libiconv DLL 1.9.1 for Windows」をダウンロードしてiconv.dllを置き換えれば解消した。
短い日本語の文章ならば、iconvの1.10でもうまく送信できるので最初は狐に包まれた感じだった。