メールによるチケット更新の問題点

1,280 views
Skip to first unread message

anemone reef

unread,
Mar 24, 2010, 8:47:14 PM3/24/10
to redmine-...@googlegroups.com
いつも参考にさせていただいております。


「IMAPサーバからの受信」でメールによるチケットの登録を運
用しようとしていますが、以下の問題が出ています。
⇒修正可能な気がしますが、どの変をいじればよいでしょう?

★メールに添付付されたファイルが日本語の場合、Redmine
に登録されたファイルが文字化けする。

★ファイルが添付された履歴が残らない。


また、 http://redmine.jp/guide/RedmineReceivingEmails/
を参考にしていますが、下記の点、うまく動作させることができて
おりません。
⇒何か他に設定が必要なのでしょうか?

★全ての属性の値をメール内で上書きすることができません。
 (コメント(注記)の追加や添付ファイルの追加はできています)

★メールによるチケットの新規登録ができていません。
 (既にあるチケットに対するコメント(注記)追加はできています)


何か情報があれば、よろしくお願いいたします。

anemone reef

unread,
Mar 24, 2010, 8:57:15 PM3/24/10
to redmine-...@googlegroups.com
環境を書き忘れました。
Redmineは0.9.2で、オリジナルの改造を加えています。

# ruby script/about
About your application's environment
Ruby version 1.8.7 (i686-linux)
RubyGems version 1.3.5
Rack version 1.0
Rails version 2.3.5
Active Record version 2.3.5
Active Resource version 2.3.5
Action Mailer version 2.3.5
Active Support version 2.3.5
Edge Rails revision unknown
Application root /var/rm092kai02
Environment development
Database adapter mysql
Database schema version 20100226081325

くるくる

unread,
Mar 25, 2010, 3:12:02 AM3/25/10
to Redmine Users (japanese)
こんにちは、くるくると申します。

添付ファイルの件ですが、バイナリファイルはプレビューはできませんよね。
テキストファイルがRedmineの画面で展開された時に、文字化けしてしまうということでよろしいでしょうか。

添付ファイルの表示は、基本的にUTF-8でないと文字化けしてしまいます。
メールでの登録以外で、通常にRedmineから添付ファイルをポストした時は、文字化けは発生しましたでしょうか?

文字化けの場合、SJISとかEUCではないかと思います。

添付ファイルについては、メールでPOSTする際に強制的にUTF-8に変換するという方法もありますが、私の環境では、添付ファイルの表示用ヘルパー
を修正して、文字化けしないようにしています。

Ref. http://www.redmine.org/attachments/3453/attachments_helper.rb.patch

メールでのPOSTは、OSに依存した設定が必要なので、私の環境ではメールPOST用のAPIを利用して、コマンドラインからチケットを作成、更新す
るスクリプトを書いています。
(人がチケットを作成するためではなく、Cronなどで、たとえば障害検知時にチケットを作成するというパターンで利用しています)

RedmineのRESTの機能がリリースされれば、メールで登録するよりももっと楽になるかと思いますが...。

anemone reef

unread,
Mar 25, 2010, 5:57:40 AM3/25/10
to redmine-...@googlegroups.com
ご返答ありがとうございます。
言葉足らずですみません。
文字化けという表現は不適切でした。

> テキストファイルがRedmineの画面で展開された時に、文字化けしてしまうということでよろしいでしょうか。

いいえ、日本語ファイル名が正しく記録されません(ファイルの中身自体は正常です)

例えば、「テスト.ppt」というファイルをメールへ添付し、
Redmineに取り込まれると、
「__ISO-2022-JP_B_GyRCJUYlOSVIGyhCLnBwdA____ 」というファイル名になります。

当方の環境では、actionmailer_jaを使っているのですが、これの影響ですかね。。。

--
2010年3月25日16:12 くるくる <akiko...@hotmail.co.jp>:

> --
> このメールは Google グループのグループ「Redmine Users (japanese)」の登録者に送られています。
> このグループに投稿するには、redmine-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、redmine-users-...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/redmine-users-ja?hl=ja からこのグループにアクセスしてください。
>
>

くるくる

unread,
Mar 26, 2010, 3:11:10 AM3/26/10
to Redmine Users (japanese)
こんにちは。
こちらこそ勝手に解釈してしまい、申し訳ありません....。

On 3月25日, 午後6:57, anemone reef <anemone.r...@gmail.com> wrote:

> いいえ、日本語ファイル名が正しく記録されません(ファイルの中身自体は正常です)

バイナリファイルなのですね。
それなら、Redmineの画面で見るわけではないので、本文の文字化けは無いということになりますね。

> 例えば、「テスト.ppt」というファイルをメールへ添付し、
> Redmineに取り込まれると、
> 「__ISO-2022-JP_B_GyRCJUYlOSVIGyhCLnBwdA____ 」というファイル名になります。
>
> 当方の環境では、actionmailer_jaを使っているのですが、これの影響ですかね。。。

actionmailer は送信する側のプラグインだと認識しているので、ここは関係ないのではないかな、と思います。
私の場合は、実際にメールを送信しているわけではないのですが、メールのデータはUTF-8で作成しています。
送信されているメールは、もしかして、JIS(ISO-2022-JP)でしょうか?

RedmineのメールのAPIは、Charsetまでは自動で判断してくれていないと思います。
メーラーをお使いなら、送信時のオプションでエンコーディングを切り替えることができると思いますので、ご確認いただけますでしょうか。


> --
> 2010年3月25日16:12 くるくる <akiko_p...@hotmail.co.jp>:


>
> > こんにちは、くるくると申します。
>
> > 添付ファイルの件ですが、バイナリファイルはプレビューはできませんよね。
> > テキストファイルがRedmineの画面で展開された時に、文字化けしてしまうということでよろしいでしょうか。
>
> > 添付ファイルの表示は、基本的にUTF-8でないと文字化けしてしまいます。
> > メールでの登録以外で、通常にRedmineから添付ファイルをポストした時は、文字化けは発生しましたでしょうか?
>
> > 文字化けの場合、SJISとかEUCではないかと思います。
>
> > 添付ファイルについては、メールでPOSTする際に強制的にUTF-8に変換するという方法もありますが、私の環境では、添付ファイルの表示用ヘルパー
> > を修正して、文字化けしないようにしています。
>

> > Ref.http://www.redmine.org/attachments/3453/attachments_helper.rb.patch

Shun-ichi Goto

unread,
Mar 26, 2010, 3:30:38 AM3/26/10
to redmine-...@googlegroups.com
2010年3月25日18:57 anemone reef <anemon...@gmail.com>:

>> テキストファイルがRedmineの画面で展開された時に、文字化けしてしまうということでよろしいでしょうか。
>
> いいえ、日本語ファイル名が正しく記録されません(ファイルの中身自体は正常です)
>
> 例えば、「テスト.ppt」というファイルをメールへ添付し、
> Redmineに取り込まれると、
> 「__ISO-2022-JP_B_GyRCJUYlOSVIGyhCLnBwdA____ 」というファイル名になります。

これは MIME での Content-Disposition: filename= (あるいは Content-Type: name= の部分)
に与えられているファイル名が、 =?ISO-2022-JP?B?GyRCJUYlOSVIGyhCLnBwdA==?=
のように与えられているからでしょう。これは規格外の、でもある程度デファクトな
方法でエンコードされたものです。メールの生ファイルを見ればわかるはずです。

非ASCIIなファイル名を指定する方法はRFC2231で決められていますが、
まだまだ普及していないのと、それより先に上記のような方法が独自拡張として
広まってしまったことから、上記のような不幸はいまだによく見かけます。

今回のケースは少なくとも送る側のメールソフトが規格外の方法でエンコードしてること、
Redmine側がそれらを寛容に受け入れるようにはなっていないことが問題でしょう。
これに対する対処としては現状では 「漢字ファイル名の添付ファイルは禁止」
しかないのではないかと思います。

私自身はRedmineは全く使ってないので対処方法や修正箇所はまったく
見当がつかないですが、手を入れるとしたらメール受信処理の部分でしょう。

--
Shun-ichi GOTO

fmkt

unread,
Mar 26, 2010, 4:23:20 AM3/26/10
to Redmine Users (japanese)
こんにちは。

On 3月25日, 午後6:57, anemone reef <anemone.r...@gmail.com> wrote:

> いいえ、日本語ファイル名が正しく記録されません(ファイルの中身自体は正常です)
>
> 例えば、「テスト.ppt」というファイルをメールへ添付し、
> Redmineに取り込まれると、
> 「__ISO-2022-JP_B_GyRCJUYlOSVIGyhCLnBwdA____ 」というファイル名になります。

やっつけです。メール受信とブラウザからのファイルアップロードに影響するのでどちらでも確認しましたが問題なさそうです。
ファイル名がISO-2022-JP以外でエンコードされた場合を考えていないので適宜条件に追加してもらえればと思います。

Index: app/models/attachment.rb
===================================================================
--- app/models/attachment.rb (リビジョン 2956)
+++ app/models/attachment.rb (作業コピー)
@@ -138,6 +138,8 @@
# NOTE: File.basename doesn't work right with Windows paths on
Unix
# INCORRECT: just_filename = File.basename(value.gsub('\\\\',
'/'))

+ just_filename = just_filename.index(/=\?iso-2022-jp\?B\?/i) ?
NKF.nkf("-J -w -m0",Base64.decode_b(just_filename)) : just_filename
+
# Finally, replace all non alphanumeric, hyphens or periods with
underscore
@filename = just_filename.gsub(/[^\w\.\-]/,'_')
end

では。

anemone reef

unread,
Mar 26, 2010, 5:17:54 AM3/26/10
to redmine-...@googlegroups.com
くるくるさん、Shun-ichi Gotoさん、fmktさん、ご返答ありがとうございます。

メールの日本語ファイル名添付については、Redmineの問題ではなく、根の深い問題なのですね。
勉強になりました。

fmktさんの修正パッチを適用してみました。
今のところ、結果良好です。
いつも助けていただき、ありがとうございます。

----
2010年3月26日17:23 fmkt <fmkt....@gmail.com>:

Reply all
Reply to author
Forward
0 new messages