Railsでiso-2022-jpのメール送信
Railsでメール送信は滅茶苦茶簡単ですが、Content-TypeのcharsetがUTF-8です。
でiso-2022-jpでメールを送る手段としては以下3つ
以下、感想
- 自力で書いてもPerlやPHPみたいに文字コード変換やSMTP・MIMEのライブラリがあるので苦労はしない
- ActiveHeartはbodyのみをエンコードしてるようで、ヘッダ部に関しては自力でエンコードしないといけない
- GetTextはインストールが必要だが、インストールとちょっとした設定するだけでiso-2022-jpのメールが送れる
- GetTextはsubjectもキチンとエンコードしてくれるが、FromやToはエンコードしてくれないみたい
GetTextがFromやToをエンコードしてくれないのはなんかふに落ちないが、いったんそこは自力でエンコードすることにします。
自前でエンコードする際の注意。
Webには
"=?ISO-2022-JP?B?"+[NKF.nkf("-j","日本語日本語")].pack("m").delete("\r\n")+"?="
みたいにかかれてたけど、Mailerによっては上手認識してくれない(最後の改行が上手く抜けない)ので以下のように変更
"=?ISO-2022-JP?B?"+[NKF.nkf("-jW80","日本語日本語")].pack("m").chomp()+"?="
でもなんか化けるよ。