Changes between Version 1 and Version 2 of TracNotification


Ignore:
Timestamp:
May 13, 2012, 9:15:45 PM (13 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracNotification

    v1 v2  
    1 = チケット更新情報のメール通知 =
     1= チケット更新情報のメール通知 = #EmailNotificationofTicketChanges
    22[[TracGuideToc]]
    33
    4 Trac はチケット更新情報をメールで通知出来ます。
     4Trac はチケット更新情報をメールで通知出来ます。 (英語版では Notification)
    55
    66メールによる更新通知は、ユーザに関係するチケットについての最新情報を随時に提供したり、専用 ML にチケットの更新情報を配信したりするのに便利な機能です。例えば、 [http://lists.edgewall.com/archive/trac-tickets/ Trac-tickets] を見るとどのようにセットアップされているか見ることができます。
     
    88通知機能はデフォルトでは無効になっています。有効化とコンフィグレーションは [wiki:TracIni trac.ini] で行うことができます。
    99
    10 == メール通知を受け取る ==
    11 新しいチケットを登録したりコメントを追加する際、 ''報告者'' 、 ''担当者'' もしくは ''関係者'' フィールドに有効なメールアドレスを入力してください。チケットに更新があると、 Trac が自動的にメールを送信します。 (どのように通知メール機能を設定しているかによります)
     10== 通知メールを受け取る == #ReceivingNotificationMails
     11新しいチケットを登録したりコメントを追加する際、 ''報告者'' (英語版では ''reporter'')、 ''担当者'' (英語版では ''assigned to/owner'') もしくは ''関係者'' (英語版では ''cc'') フィールドに有効なメールアドレスやユーザ名を入力してください。チケットに更新があると、 Trac が自動的にメールを送信します。 (どのように通知メール機能を設定しているかによります)
    1212
    1313これは、興味のあるチケットや機能追加に関する最新情報を随時受け取りたい場合に便利な機能です。
    1414
    15 == SMTP 通知のコンフィグレーション ==
    16 
    17 === コンフィグレーション オプション ===
    18 trac.ini の ''[notification]'' セクションで設定できるオプションです。
    19 [[BR]](訳注: 0.10 以降では `TracIni` マクロを使用することで正確なオプション一覧を取得できます。以下のリストは必要に応じて `[[TracIni(notification)]]` に置き換えて使用してください。)
    20  * '''smtp_enabled''': メール通知を有効にします。
    21  * '''smtp_server''': 通知メッセージに使用されるSMTPサーバ。
    22  * '''smtp_user''': (''0.9'' 以降) SMTP認証アカウントのユーザID。
    23  * '''smtp_password''': (''0.9 以降'') SMTP認証アカウントのパスワード。
    24  * '''smtp_from''': 通知メールの''Sender''-ヘッダに使用するメールアドレス。
    25  * '''smtp_replyto''': 通知メールの''Reply-To''-ヘッダに使用するメールアドレス
    26  * '''smtp_default_domain''': (''0.10 以降'') ドメイン名を含んでいないアドレスに特定のドメイン名を追加します。完全修飾されたアドレスは修正されません。ユーザの設定からメールアドレスが分からないときに、デフォルトドメインをすべてのユーザ名 / ログイン名に追加します。
    27  * '''smtp_always_cc''': 常に通知メールを送信するメールアドレスのリスト。 ''主に専用MLにチケット更新を通知するのに使用されます。''
    28  * '''smtp_always_bcc''': (''0.10 以降'') 常に通知メールを送信するメールアドレスの一覧。ただし、通知メールの他の受信者からメールアドレスが見えません。
    29  * '''always_notify_reporter''': 報告者フィールドのすべてのメールアドレスに常に通知メールを送信します。
    30  * '''always_notify_owner''': (''0.9 以降'') 担当者フィールドのメールアドレスに常に通知メールを送信します。
    31  * '''always_notify_updater''': (''0.10 以降'') チケットの更新者に常に通知メールを送信します。
    32  * '''use_public_cc''': (''0.10 以降'') To: (担当者, 報告者) と CC: のアドレスのリストがすべての受信者に見えるかどうかを設定します ( デフォルトは ''Bcc:'' で見えません)
    33  * '''use_short_addr''': (''0.10 以降'') 通知メールの配信でメールアドレスがドメイン名を含むようにするかどうかを設定します (例 ''@<domain.com>'' で終わらないようにする)。このオプションは SMTP サーバがローカルアドレスをハンドリングでき、ローカルのメールボックスとユーザ名/ログイン名をマップできるような環境、イントラネット内で使用するときに便利です。
    34  * '''mime_encoding''': (''0.10 以降'') 通知メールは常に 7-bit モードで送信されます。このオプションで MIME エンコードの選択ができます。利用可能な値は以下の通りです:
    35    * `base64`: デフォルトの値です。どのような種類の内容にも対応できます。 デリケートな アンチスパム / アンチウイルス エンジンにひっかかるかもしれません。
    36    * `qp` または `quoted-printable`: ヨーロッパの言語に適しています。 (base64 よりコンパクトです) non-ASCII テキストには推奨できません。 (base64 のほうがコンパクトになります )
    37    * `none`: エンコードしません。英語のみ (ASCII) で使用できます。 non-ASCII 文字を含んでいるメールは配信されないでしょう。
    38 
    39 '''smtp_from''' か '''smtp_replyto''' の一方 (もしくは両方) が ''必ず'' 設定されていなければなりません。設定されていない場合、 Trac は通知メールの送信を拒否します。
    40 
    41 === コンフィグレーション例 ===
    42 
     15=== 通知メールで受信するメールアドレスを設定する方法 === #Howtouseyourusernametoreceivenotificationmails
     16
     17完全なメールアドレスあるいはユーザー名を入力することで、通知メールを受け取ることができます。 単純なユーザ名やログイン名で通知を受け取るには、''ユーザ設定 (Preferences)'' ページで、正しいメールアドレスを入力する必要があります。
     18
     19TracIni ファイルにデフォルトドメイン名 ('''`smtp_default_domain`''') を指定することでも、単純なユーザ名で通知を受け取ることができるようになります。 (後述する [#ConfigurationOptions コンフィグレーション オプション] を参照してください) 。この場合、ユーザ名にデフォルトドメインが追加されますので、 "イントラネット" 環境で仕様している場合は便利です。
     20
     21== SMTP 通知のコンフィグレーション == #ConfiguringSMTPNotification
     22
     23'''重要:''' TracNotification を正しく動作させるには、[wiki:TracIni trac.ini] に `[trac] base_url` を設定する必要があります。
     24
     25=== コンフィグレーション オプション === #ConfigurationOptions
     26trac.ini の `[notification]` セクションで設定できるオプションです。[[BR]](訳注: 0.10 以降では `TracIni` マクロを使用することで正確なオプション一覧を取得できます。以下のリストは必要に応じて `[[TracIni(notification)]]` に置き換えて使用してください。)
     27
     28 * '''`smtp_enabled`''': メール通知を有効にします。
     29 * '''`smtp_from`''': 通知メールの ''Sender''-ヘッダに使用するメールアドレス。
     30 * '''`smtp_from_name`''': 通知メールの ''Sender''-ヘッダに使用する送信者名。
     31 * '''`smtp_replyto`''': 通知メールの''Reply-To''-ヘッダに使用するメールアドレス
     32 * '''`smtp_default_domain`''': (''0.10 以降'') ドメイン名を含んでいないアドレスに特定のドメイン名を追加します。完全修飾されたアドレスは修正されません。ユーザの設定からメールアドレスが分からないときに、デフォルトドメインをすべてのユーザ名 / ログイン名に追加します。
     33 * '''`smtp_always_cc`''': 常に通知メールを送信するメールアドレスのリスト。 ''主に専用MLにチケット更新を通知するのに使用されます。''
     34 * '''`smtp_always_bcc`''': (''0.10 以降'') 常に通知メールを送信するメールアドレスの一覧。ただし、通知メールの他の受信者からメールアドレスが見えません。
     35 * '''`smtp_subject_prefix`''': (''0.10.1 以降'') e-mail の subject の前に挿入されるテキスト。デフォルトは "!__default!__"
     36 * '''`always_notify_reporter`''': 報告者フィールドのすべてのメールアドレスに常に通知メールを送信します。 (default: false)
     37 * '''`always_notify_owner`''': (''0.9 以降'') 担当者フィールドのメールアドレスに常に通知メールを送信します。 (default: false)
     38 * '''`always_notify_updater`''': (''0.10 以降'') チケットの更新者に常に通知メールを送信します。 (default: false)
     39 * '''`use_public_cc`''': (''0.10 以降'') To: (担当者, 報告者) と CC: のアドレスのリストがすべての受信者に見えるかどうかを設定します ( デフォルトは ''Bcc:'' で見えません)
     40 * '''`use_short_addr`''': (''0.10 以降'') 通知メールの配信でメールアドレスがドメイン名を含むようにするかどうかを設定します (例 ''@<domain.com>'' で終わらないようにする)。このオプションは SMTP サーバがローカルアドレスをハンドリングでき、ローカルのメールボックスとユーザ名/ログイン名をマップできるような環境、イントラネット内で使用するときに便利です。
     41 * '''`mime_encoding`''': (''0.10 以降'') MIME のエンコードのスキームを選択します。サポートする値:
     42   * `none`: デフォルト値。テキストがプレーンな ASCII 文字コード、もしくはその他 8 ビットの文字コードであるときに、 7 ビットエンコードを使用します。
     43   * `base64`: どのような内容が含まれていても動作します。敏感なアンチスパム / アンチウイルスエンジンではいくつかの問題があるかもしれません。
     44   * `qp` または `quoted-printable`: 8 ビットエンコーディングが使用できない場合、ヨーロッパの言語に対して最適です ( base64 よりもコンパクトです )。
     45 * '''`ticket_subject_template`''': (''0.11 以降'') 通知メールの件名 (Subject) に使用する [http://genshi.edgewall.org/wiki/Documentation/text-templates.html Genshi テキストテンプレート] 。
     46 * '''`email_sender`''': (''0.12 以降'') `IEmailSender` インタフェースを実装しているコンポーネント名。通知システムは、ここで設定されたコンポーネントを使用してメールを送信します。現在のところ Trac では以下のコンポーネントが提供されています:
     47   * `SmtpEmailSender`: SMTP サーバに接続してメールを送信する (デフォルト)。
     48   * `SendmailEmailSender`: `sendmail` 互換の実行ファイルを実行してメールを送信する。
     49
     50'''`smtp_from`''' か '''`smtp_replyto`''' の一方 (もしくは両方) が ''必ず'' 設定されていなければなりません。設定されていない場合、 Trac は通知メールの送信を拒否します。
     51
     52以下のオプションは SMTP でのメッセージ伝送方法を指定するために使用します。
     53 * '''`smtp_server`''': 通知メッセージに使用されるSMTPサーバ。
     54 * '''`smtp_port`''': (''0.9 以降'') SMTP サーバが使用するポート番号。
     55 * '''`smtp_user`''': (''0.9 以降'') SMTP 認証アカウントのユーザID。
     56 * '''`smtp_password`''': (''0.9 以降'') SMTP 認証アカウントのパスワード。
     57 * '''`use_tls`''': (''0.10 以降'') SMTP サーバ経由で通知メールを送信するときに、GMail などの [http://en.wikipedia.org/wiki/Transport_Layer_Security TLS] を使用するかどうかを切り替えます。
     58
     59以下のオプションは `sendmail` 互換の実行ファイルを使用する場合のメッセージ伝送方法を指定するために使用します。
     60 * '''`sendmail_path`''': (''0.12 以降'') sendmail の実行ファイルへのパスを設定します。ここで指定する sendmail プログラムは `-i` および `-f` オプションを解釈できなければなりません。
     61
     62=== コンフィグレーションの例 (SMTP) === #ExampleConfigurationSMTP
    4363{{{
    4464[notification]
     
    5070}}}
    5171
    52 == Emailサンプル ==
     72=== コンフィグレーションの例 (`sendmail`) === #ExampleConfigurationsendmail
     73{{{
     74[notification]
     75smtp_enabled = true
     76email_sender = SendmailEmailSender
     77sendmail_path = /usr/sbin/sendmail
     78smtp_from = notifier@example.com
     79smtp_replyto = myproj@projects.example.com
     80smtp_always_cc = ticketmaster@example.com, theboss+myproj@example.com
     81}}}
     82
     83=== メールの件名をカスタマイズする === #Customizingthee-mailsubject
     84`ticket_subject_template` オプションを使用することでメールの件名をカスタマイズできます。このオプションには [http://genshi.edgewall.org/wiki/Documentation/text-templates.html Genshi テキストテンプレート] を含めることができます。デフォルト値は以下の通りです:
     85{{{
     86$prefix #$ticket.id: $summary
     87}}}
     88テンプレートでは以下の変数が使用可能です:
     89
     90 * `env`: プロジェクトの Environemnt ([http://trac.edgewall.org/browser/trunk/trac/env.py env.py] 参照)。
     91 * `prefix`: `smtp_subject_prefix` で定義したプレフィックス。
     92 * `summary`: チケットの概要 (Summary), 概要が変更されている場合は古い値。
     93 * `ticket`: ticket model オブジェクト ([http://trac.edgewall.org/browser/trunk/trac/ticket/model.py model.py] 参照)。個別のチケット属性は `$ticket.milestone` のように、ドット (.) で区切って (訳注: 英語での) 属性名を加えることで、参照可能。
     94
     95=== メールの内容をカスタマイズする === #Customizingthee-mailcontent
     96
     97通知メールの内容は `trac/ticket/templates` の `ticket_notify_email.txt` を元に生成されます。編集した `ticket_notify_email.txt` を Environment の templates ディレクトリに配置することで、カスタマイズすることができます。デフォルトはこのようになっています:
     98
     99{{{
     100$ticket_body_hdr
     101$ticket_props
     102#choose ticket.new
     103  #when True
     104$ticket.description
     105  #end
     106  #otherwise
     107    #if changes_body
     108Changes (by $change.author):
     109
     110$changes_body
     111    #end
     112    #if changes_descr
     113      #if not changes_body and not change.comment and change.author
     114Description changed by $change.author:
     115      #end
     116$changes_descr
     117--
     118    #end
     119    #if change.comment
     120
     121Comment${not changes_body and '(by %s)' % change.author or ''}:
     122
     123$change.comment
     124    #end
     125  #end
     126#end
     127
     128--
     129Ticket URL: <$ticket.link>
     130$project.name <${project.url or abs_href()}>
     131$project.descr
     132}}}
     133== Email サンプル == #SampleEmail
    53134{{{
    54135#42: testing
     
    60141    Owner:  anonymous      |    Reporter:  jonas@example.com               
    61142---------------------------+------------------------------------------------
    62 更新 (更新者: jonas@example.com):
     143Changes:
    63144  * component:  changset view => search system
    64145  * priority:  low => highest
     
    68149  * status:  new => assigned
    69150
    70 コメント:
     151Comment:
    71152I'm interested too!
    72153
     
    76157}}}
    77158
    78 == トラブルシューティング ==
     159== SMTP リレーホストとして GMail を使用する == #UsingGMailastheSMTPrelayhost
     160
     161以下のような設定を使用します
     162{{{
     163[notification]
     164smtp_enabled = true
     165use_tls = true
     166mime_encoding = base64
     167smtp_server = smtp.gmail.com
     168smtp_port = 587
     169smtp_user = user
     170smtp_password = password
     171}}}
     172
     173''user'' と ''password'' の箇所は、 GMail のアカウントで置き換えてください。 ''たとえば'' [http://gmail.com] にログインするときに使用しているものです。
     174
     175代わりに `smtp_port = 25` を使用することもできます。 (訳注: おそらく `gmail.com` 宛のメールしか届きません)[[br]]
     176しかし `smtp_port = 465` は使用できません。これは動作しないだけでなく、通知メール送信がデッドロックします。ポート番号 465 は SMTPS プロトコル (訳注: SSMTP とも言います) に使用されますが、 Trac はこれをサポートしていません。詳しくは [http://trac.edgewall.org/ticket/7107#comment:2 #7107] を参照してください。
     177 
     178== 自分が変更した通知をフィルタする == #Filteringnotificationsforonesownchanges
     179Gmail では、以下のフィルタを使用できます:
     180
     181{{{
     182from:(<smtp_from>) (("Reporter: <username>" -Changes) OR "Changes (by <username>)")
     183}}}
     184
     185Trac 0.10 の場合は、下記のフィルタを使用してください:
     186{{{
     187from:(<smtp_from>) (("Reporter: <username>" -Changes -Comment) OR "Changes (by <username>)" OR "Comment (by <username>)")
     188}}}
     189
     190通知メールを削除する場合などにも使用できます。
     191
     192Thunderbird で IMAP を使用している場合は、この方法は使えません
     193(http://kb.mozillazine.org/Filters_(Thunderbird)#Filtering_the_message_body 参照)。
     194
     195最良の方法は conf/trac.ini の "always_notify_updater" を false に設定することです。
     196しかし、この方法では自分が担当者 (owner) になっていたり、報告 (reporter) したチケットへのコメントが取得できなくなります。
     197
     198プラグインを追加することで解決するかもしれません:
     199http://trac-hacks.org/wiki/NeverNotifyUpdaterPlugin
     200
     201== トラブルシューティング == #Troubleshooting
    79202
    80203通知メールの設定がうまくいかないとき、最初にログが出力されるようになっているか確かめて下さい。そしてどういうエラーメッセージが出力されているかを見てください。[http://trac.edgewall.org/wiki/TracLogging TracLogging] にログについて書いてあるので見て下さい。
    81204
    82 通知メールのエラーは web インタフェースで報告されないので、誰かがチケットを更新したり、新規のチケットを登録しても通知メールが届かないことにまったく気づかないでしょう。 Trac の管理者はエラートレースを追い、ログをみる必要があります。
    83 
    84 === ''Permission denied'' エラー ===
     205通知メールのエラーは Web インタフェースで報告されないので、誰かがチケットを更新したり、新規のチケットを登録しても通知メールが届かないことにまったく気づかないでしょう。 Trac の管理者はエラートレースを追い、ログをみる必要があります。
     206
     207=== ''Permission denied'' エラー === #Permissiondeniederror
    85208
    86209たいていのエラーメッセージ:
     
    92215}}}
    93216
    94 このエラーはたいていサーバのセキュリティの設定に起因します: 多くの Linux のディストリビューションは web サーバ (Apache など ...) がローカルの SMTP サーバにメールを送信させません。
    95 
    96 多くのユーザは マニュアルに SMTP サーバに接続できるか試すよう書いてあり、成功するので混乱するでしょう:
     217このエラーはたいていサーバのセキュリティの設定に起因します: 多くの Linux のディストリビューションでは Web サーバ (Apache など ...) からローカルの SMTP サーバにメールを送信させません。
     218
     219多くのユーザはマニュアルに SMTP サーバに接続できるか試すよう書いてあり、成功するので混乱するでしょう:
    97220{{{
    98221telnet localhost 25
    99222}}}
    100 トラブルの原因は、一般ユーザは SMTP サーバに接続できるけれども、 web サーバは接続できないということです:
     223トラブルの原因は、一般ユーザは SMTP サーバに接続できるけれども、 Web サーバは接続できないということです:
    101224{{{
    102225sudo -u www-data telnet localhost 25
    103226}}}
    104227
    105 このような場合、 web サーバ が SMTP サーバにメールを送信するときに認証を行うように設定する必要があります。実際の設定は使用している Linux のディストリビューションと現在のセキュリティのポリシーによります。 Trac の [http://trac.edgewall.org/wiki/MailingList MailingList] のアーカイブを参照して下さい。
     228このような場合、 Web サーバ が SMTP サーバにメールを送信するときに認証を行うように設定する必要があります。実際の設定は使用している Linux のディストリビューションと現在のセキュリティのポリシーによります。 Trac の [http://trac.edgewall.org/wiki/MailingList MailingList] のアーカイブを参照して下さい。
    106229
    107230関係のあるメーリングリストのスレッド:
    108231 * SELinux: http://article.gmane.org/gmane.comp.version-control.subversion.trac.general/7518
    109  
    110 === ''Suspected spam'' エラー ===
     232
     233Fedora 10 の SELinux では下記のコマンドで対処できます:
     234{{{
     235$ setsebool -P httpd_can_sendmail 1
     236}}}
     237=== ''Suspected spam'' エラー === #Suspectedspamerror
    111238
    112239SMTP サーバの中には Trac によって送信される通知メールを拒否するのもあるでしょう。
     
    114241Trac はデフォルトで通知メールを Base64 エンコーディングして受信者に送信します。メールの本文 (Body) 全体がエンコードされる (訳注:チケットのタイトルに日本語が含まれる場合、通知メールの Subject ヘッダも utf-8 base64 エンコーディングされます) ので、繊細なメールサーバ上の ''false positive'' な SPAM 発見プログラムのトリガになってしまいます。このような状況に遭遇した場合、 `mime_encoding` オプションでデフォルトのエンコーディングを "quoted-printable" に変更することを推奨します。
    115242
    116 "quoted-printable" エンコーディングは ラテン系の文字セットで使用すると効果があります。アジア系の文字セットでは、 Base64 エンコーディングに固定することを推奨します。
    117 
    118 (訳注: 日本語のメールで主に使用されるエンコードは `ISO-2022-JP` ですが、 Trac が送信する通知メールは `UTF-8` でエンコードされ、さらに `BASE64` か `quoted-printable` で 7bit-safe な形式にエンコードされます。
    119 `ISO-2022-JP` エンコーディングでない日本語のメールは Spam 検出エンジンに誤判定されやすくなる傾向があるようです。
    120 また、 MUA がこれらのエンコードに対応していない場合、たとえ受信できたとしても文字化けしたり表示できない可能性があります。)
     243"quoted-printable" エンコーディングは ラテン系の文字セットで使用すると効果があります。アジア系の文字セットでは、 Base64 エンコーディングに固定することを推奨します。 (訳注: 日本語のメールで主に使用されるエンコードは `ISO-2022-JP` ですが、 Trac が送信する通知メールは `UTF-8` でエンコードされ、さらに `BASE64` か `quoted-printable` で 7bit-safe な形式にエンコードされます。 `ISO-2022-JP` エンコーディングでない日本語のメールは Spam 検出エンジンに誤判定されやすくなる傾向があるようです。また、 MUA がこれらのエンコードに対応していない場合、たとえ受信できたとしても文字化けしたり表示できない可能性があります。)
     244
     245=== ''501, 5.5.4 Invalid Address'' エラー === #a5015.5.4InvalidAddresserror
     246
     247IIS 6.0 で
     248{{{
     249Failure sending notification on change to ticket #1: SMTPHeloError: (501, '5.5.4 Invalid Address')
     250}}}
     251上記のエラーが trac のログにでる場合、 [http://support.microsoft.com/kb/291828 ここ]を参考に解決してください。
     252
    121253
    122254----