2013年01月15日

s2maiのメールのエンコード

sastrutsでs2maiを利用してメール送信を行っているが、

香港版のシステム構築時に、担当技術者よりmailProperties.dicon内の

<component name="mailCharset">"ISO-2022-JP"</component>

この部分を

<component name="mailCharset">"UTF-8"</component>

しても、送信されるメールの文字エンコードがISO-2022-JPのままだと報告があった。

書籍やウェブで調べても、上記の方法で良さそうだけどな?

ということで、調査してみると以下のような情報があった。

以下、転記。

===================================================================
◆S2Maiでは、メールのContent-TypeをISO-2022-JPから変更 したい場合、 以下の手段しか見当たりませんでした:

○メール送信インタフェイスと同じパッケージに、dicon ファイルを作成し、 そこでcharsetを指定する。 (
http://s2mai.sandbox.seasar.org/ja/guide1.html#basicの「TestMai_sendMail.dicon」がdiconファイルの例に
なります。 ただし、charsetはコンストラクタでのみ指定可能なの
で、 以下のような記述になります。)

-------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN" "
http://www.seasar.org/dtd/components23.dtd">
<components>

<component class="com.ozacc.mail.Mail">
<arg>"UTF-8"</arg>
</component>

</components>
-------------------------------------------------------------

この「com.ozacc.mail.Mail」クラスのプロパティ 『charset』が、 Content-Typeに設定されます。

『charset』がnullの場合のみ、mailProperties.diconの『 mailCharset』が
Content-Typeに設定されるのですが、 『charset』のデフォルト値がISO-2022-JPであるため、
通常はmailProperties.diconの『mailCharset』を書き換え ても
『charset』のデフォルト値ISO-2022-JPが優先されてしま うようです。

==============================

なるほどね。ということで担当者に上記の方法で試させてみると上手くいった。
上記情報提供者に感謝です(^^)

しかし、最近Seasar2のプロダクトがほんの一部のみ以外は全く動いてなさそうで、以前の盛り上がりがあればこのような問題もとっくに解決して貰えてるのかな?Fisshplateの2007形式の対応といい、待ち望んでることは結構ある。

まあ、OSSだから自分でやれって話なのかな?仕方ないのかもしれないけど、すごく残念。
もう皆、Scalaに行っちゃったのかな・・・?
posted by hana at 20:43| Comment(0) | TrackBack(0) | seasar関連 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。