WikiPrint - from Polar Technologies

チケット更新情報のメール通知

Trac はチケット更新情報をメールで通知出来ます。 (英語版では Notification)

メールによる更新通知は、ユーザに関係するチケットについての最新情報を随時に提供したり、専用 ML にチケットの更新情報を配信したりするのに便利な機能です。例えば、 Trac-tickets を見るとどのようにセットアップされているか見ることができます。

通知機能はデフォルトでは無効になっています。有効化とコンフィグレーションは trac.ini で行うことができます。

メール通知を受け取る

新しいチケットを登録したりコメントを追加する際、 報告者 (英語版では reporter)、 担当者 (英語版では assigned to/owner) もしくは 関係者 (英語版では cc) フィールドに有効なメールアドレスを入力してください。チケットに更新があると、 Trac が自動的にメールを送信します。 (どのように通知メール機能を設定しているかによります)

これは、興味のあるチケットや機能追加に関する最新情報を随時受け取りたい場合に便利な機能です。

SMTP 通知のコンフィグレーション

コンフィグレーション オプション

trac.ini の [notification] セクションで設定できるオプションです。
(訳注: 0.10 以降では TracIni マクロを使用することで正確なオプション一覧を取得できます。以下のリストは必要に応じて [[TracIni(notification)]] に置き換えて使用してください。)

smtp_fromsmtp_replyto の一方 (もしくは両方) が 必ず 設定されていなければなりません。設定されていない場合、 Trac は通知メールの送信を拒否します。

コンフィグレーションの例

[notification]
smtp_enabled = true
smtp_server = mail.example.com
smtp_from = notifier@example.com
smtp_replyto = myproj@projects.example.com
smtp_always_cc = ticketmaster@example.com, theboss+myproj@example.com

Email サンプル

#42: testing
---------------------------+------------------------------------------------
       Id:  42             |      Status:  assigned                
Component:  report system  |    Modified:  Fri Apr  9 00:04:31 2004
 Severity:  major          |   Milestone:  0.9                     
 Priority:  lowest         |     Version:  0.6                     
    Owner:  anonymous      |    Reporter:  jonas@example.com               
---------------------------+------------------------------------------------
Changes:
  * component:  changset view => search system
  * priority:  low => highest
  * owner:  jonas => anonymous
  * cc:  daniel@example.com =>
         daniel@example.com, jonas@example.com
  * status:  new => assigned

Comment:
I'm interested too!

--
Ticket URL: <http://example.com/trac/ticket/42>
My Project <http://myproj.example.com/>

SMTP リレーホストとして GMail を使用する

以下のような設定を使用します

[notification]
smtp_enabled = true
use_tls = true
mime_encoding = base64
smtp_server = smtp.gmail.com
smtp_port = 587
smtp_user = user
smtp_password = password

userpassword の箇所は、 GMail のアカウントで置き換えてください。 たとえば http://gmail.com にログインするときに使用しているものです。

代わりに smtp_port = 25 を使用することもできます。 (訳注: おそらく gmail.com 宛のメールしか届きません)
しかし smtp_port = 465 は使用できません。これは動作しないだけでなく、通知メール送信がデッドロックします。ポート番号 465 は SMTPS プロトコル (訳注: SSMTP とも言います) に使用されますが、 Trac はこれをサポートしていません。詳しくは #7107 を参照してください。

自分が変更した通知をフィルタする

Gmail では、以下のフィルタを使用できます:

from:(<smtp_from>) (("Reporter: <username>" -Changes) OR "Changes (by <username>)")

通知メールを削除する場合などに使用してください。

トラブルシューティング

通知メールの設定がうまくいかないとき、最初にログが出力されるようになっているか確かめて下さい。そしてどういうエラーメッセージが出力されているかを見てください。TracLogging にログについて書いてあるので見て下さい。

通知メールのエラーは Web インタフェースで報告されないので、誰かがチケットを更新したり、新規のチケットを登録しても通知メールが届かないことにまったく気づかないでしょう。 Trac の管理者はエラートレースを追い、ログをみる必要があります。

Permission denied エラー

たいていのエラーメッセージ:

  ...
  File ".../smtplib.py", line 303, in connect
    raise socket.error, msg
  error: (13, 'Permission denied')

このエラーはたいていサーバのセキュリティの設定に起因します: 多くの Linux のディストリビューションでは Web サーバ (Apache など ...) からローカルの SMTP サーバにメールを送信させません。

多くのユーザはマニュアルに SMTP サーバに接続できるか試すよう書いてあり、成功するので混乱するでしょう:

telnet localhost 25

トラブルの原因は、一般ユーザは SMTP サーバに接続できるけれども、 Web サーバは接続できないということです:

sudo -u www-data telnet localhost 25

このような場合、 Web サーバ が SMTP サーバにメールを送信するときに認証を行うように設定する必要があります。実際の設定は使用している Linux のディストリビューションと現在のセキュリティのポリシーによります。 Trac の MailingList のアーカイブを参照して下さい。

関係のあるメーリングリストのスレッド:

Suspected spam エラー

SMTP サーバの中には Trac によって送信される通知メールを拒否するのもあるでしょう。

Trac はデフォルトで通知メールを Base64 エンコーディングして受信者に送信します。メールの本文 (Body) 全体がエンコードされる (訳注:チケットのタイトルに日本語が含まれる場合、通知メールの Subject ヘッダも utf-8 base64 エンコーディングされます) ので、繊細なメールサーバ上の false positive な SPAM 発見プログラムのトリガになってしまいます。このような状況に遭遇した場合、 mime_encoding オプションでデフォルトのエンコーディングを "quoted-printable" に変更することを推奨します。

"quoted-printable" エンコーディングは ラテン系の文字セットで使用すると効果があります。アジア系の文字セットでは、 Base64 エンコーディングに固定することを推奨します。

(訳注: 日本語のメールで主に使用されるエンコードは ISO-2022-JP ですが、 Trac が送信する通知メールは UTF-8 でエンコードされ、さらに BASE64quoted-printable で 7bit-safe な形式にエンコードされます。 ISO-2022-JP エンコーディングでない日本語のメールは Spam 検出エンジンに誤判定されやすくなる傾向があるようです。 また、 MUA がこれらのエンコードに対応していない場合、たとえ受信できたとしても文字化けしたり表示できない可能性があります。)


See also: TracTickets, TracIni, TracGuide