2007/10/14
trac 0.11 でメール送信
作成者 takanori
—
投稿日
2007年10月14日 23時51分
最終変更日時
2007年10月14日 23時54分
trac では、簡単な設定でチケットが変更になったときにお知らせメールが飛ぶようにできます。
メール送信設定は trac.ini の下記の部分を修正することでできます。
[notification] : smtp_always_cc = (送信先メールアドレス) smtp_enabled = true
上記の設定でメールが送信できますが、メールの形式は utf-8 + base64 encoding になります。
最近のメーラなら大丈夫ですが、古いメーラなどではうまく読めない場合があります。
というわけで、よくある日本語メールのように iso-2022-jp でメールを送信するようにします。
"OZACC.blog: trac 0.10.4":http://blog.ozacc.com/archives/001563.html に書いてある内容を参考にしました。
trac に入っている notification.py を以下のように書き換えます。
変更前:
self._charset.input_charset = 'utf-8'
pref = self.env.config.get('notification', 'mime_encoding').lower()
if pref == 'base64':
self._charset.header_encoding = BASE64
self._charset.body_encoding = BASE64
self._charset.output_charset = 'utf-8'
:
:
# sanity check
if not self._charset.body_encoding:
try:
dummy = body.encode('ascii')
変更後:
self._charset.input_charset = 'utf-8'
pref = self.env.config.get('notification', 'mime_encoding').lower()
if pref == 'iso-2022-jp':
self._charset = Charset('iso-2022-jp')
elif pref == 'base64':
self._charset.header_encoding = BASE64
self._charset.body_encoding = BASE64
self._charset.output_charset = 'utf-8'
:
:
# sanity check
if self._charset.input_charset == 'iso-2022-jp':
body = unicode(body, 'utf-8').replace(u'\uff5e', u'\u301c')
body = body.encode('iso-2022-jp')
elif not self._charset.body_encoding:
try:
dummy = body.encode('ascii')
これで、日本語のお知らせメールが iso-2022-jp 形式で送られるようになりました。
-
- ¦
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/787/tbping