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開発環境は次のようなもの。

で、この問題は同じく香り屋 — KaoriYaさんのがらくた置き場より「Libiconv DLL 1.9.1 for Windows」をダウンロードしてiconv.dllを置き換えれば解消した。

短い日本語の文章ならば、iconvの1.10でもうまく送信できるので最初は狐に包まれた感じだった。