2007/09/29 更新
Zopeには MailHostという DTML
から行うメール送信の仕組みがあります。しかし、オリジナルの
Zopeの配布物では、メールヘッダーも、メールボディーも、
as is
で送信されるため、日本語を正しく取り扱うことができません。
これに対して、安田さんがメールヘッダー及びボディーのエンコードを変換する
Products (hotfix)を作って下さいました。
2.5.x の場合は、この hotfixを当てればよいのですが、2.6.x の場合は、MailHostの処理が変わってしまって、この hotfixが使えなくなってしまいました。そこで、安田さんの hotfixを元に、2.6.x用のhotfixを私が作りました。
以下の jaMailHost のアーカイブを使います。
ダウンロードしたアーカイブを $(INSTANCE_HOME)/Products
に展開して、 Zope を再起動すると MailHostオブジェクトがコード変換するものに変わります。
変換元の文字コードは、MailHost の Titleプロパティに設定してやる必要があります。
例えば、DTML に utf-8 で記述して、日本語のメールを送りたい場合は、MailHost の
Title プロパティに 'utf-8' を設定して下さい。
Zope 2.8 以前で動作させる場合には、jaMailHost のほかに、JapaneseCodecs が必要です。
2.6.xの場合は、 以下の jaMailHost のアーカイブを使います。 ダウンロードしたアーカイブを lib/Python/Products に展開して、 Zope を再起動すると MailHostオブジェクトがコード変換するものに変わります。
SOURCE_ENCODING = 'UTF-8' の部分を 'EUC-JP' に変更することにより、DTML に EUC-JP で記述することもできます。
jaMailHostの 0.1.2
までのバージョンは、ライセンス表記に問題があったため、削除します。
なお、2.6.0 では Zopeの日付時刻の処理にバグがあります。
http://www.zope.org/Members/regebro/datetime_260_fix
にある DateTime.pyを lib/python/DateTime
ディレクトリにコピーして下さい。
2.5.x の場合は、安田さんの jMailHost http://www.zope.org/Members/yukihiro
の jMailHostを使います。
詳しいことは、アーカイブ内の README.ja
を参照してください。
複数行にまたがるヘッダーや、長い文字列の折り返しは考慮されていません。そのため、Subject: From: To: Cc: の文字数は制約を受けます。