redmineでメールからチケットを自動登録する際にattributeに日本語が設定できない時の対処法

redmine2.5.2+CentOS6+postfixにて、メールによるチケットの自動登録をメールによるチケットの登録(Redmine.jp)の手順に従って設定しました。

/etc/aliasesファイルはこんな設定です。

support: “|/usr/local/bin/ruby /var/www/example.com/redmine-2.5.2/extra/mail_handler/rdm-mailhandler.rb –url https://example.com/redmine/ –key XXXXXX –project=inbox –status=進行中 –unknown-user=accept –no-permission-check”

すると…

ArgumentError (invalid byte sequence in UTF-8):

こんなエラーが発生して、登録できないのです。

ArgumentError (invalid byte sequence in UTF-8):
app/models/mail_handler.rb:316:in `get_keyword’
app/models/mail_handler.rb:368:in `issue_attributes_from_keywords’
app/models/mail_handler.rb:186:in `receive_issue’
app/models/mail_handler.rb:174:in `dispatch_to_default’
app/models/mail_handler.rb:159:in `dispatch’
app/models/mail_handler.rb:134:in `receive’
app/models/mail_handler.rb:46:in `receive’
app/controllers/mail_handler_controller.rb:25:in `index’

仕方なく、mail_hander.rbを改造していた

/redmine/app/models/mail_handler.rb:370行目

#’priority_id’ => (k = get_keyword(:priority)) && IssuePriority.named(k).first.try(:id),
‘priority_id’ => get_keyword(:priority),

こんなんでいいのか。
でも、必須カスタムフィールドとかがあると登録できない。

解決方法

エンコーディングのところとかも色々見まくって、redmineやmySQLなどの設定も見直しました。で、サーバの初期セッティングをちゃんとしてなかったっていう。
すみません、単にサーバのロケールを日本語にしてなかったのが原因でした。ごめんなさい。

# vi /etc/sysconfig/i18n
————————
#LANG=”en_US.UTF-8″
LANG=”ja_JP.UTF-8″
SYSFONT=”latarcyrheb-sun16″
————————

# vi ~/.vimrc
————————
#add Japanese Encoding
set encoding=utf-8
set fileencodings=utf8,iso-2022-jp,euc-jp,sjis
————————

# reboot

結論

サーバのロケールセッティングは最初にやろう。
へぼすぎる。へぼすぎるよ。。。

関連記事一覧

  1. 11月臨時休業のお知らせ
PAGE TOP