Ruby on Rails: GetTextを用いてiso-2022-jpの日本語メールを送信

Ruby on RailsではActionMailerというクラスを用いて簡単にメールを送信できます。デフォルトの文字コードはUTF-8ですが、ユーザーの環境によっては文字化けするため、標準的なiso-2022-jpを用いたいと思います。手っ取り早く日本語化するにはGetTextを使うと便利です。特に変換処理をしなくても、subjectやfrom欄なども正しくエンコードされます。

(1) GetTextのインストール

ターミナル画面で「sudo gem install gettext」コマンドを実行してGetTextをインストールします。Windows環境ではコマンドプロンプトから「gem install gettext」です。

(2) ソースの書き換え

メール送信を行うActionMailerクラスのソースファイル(例: app/model/notify_mailer.rb)を開き、次の赤文字のコードを追加します。

require ‘gettext/rails’
GetText.locale = ‘ja’

class NotifyMailer < ActionMailer::Base
def setup_email(email)
■■@recipients = “#{email}”
■■@from = “難波克行 <electricdoc@gmail.com>”
■■@sent_on = Time.now
■■@headers['Content-Type'] = “text/plain; charset=iso-2022-jp; format=flowed”
end

関連する記事

このサイトの内容は私の個人的な見解であり、私の所属するいかなる団体や組織の見解を反映しているものではありません。