TracNotificationバージョン 2バージョン 3 との変更


以下の違いを無視:
日時:
2012/10/20 13:54:06 (13年前)
更新者:
trac
コメント:

--

凡例:

未変更
追加
削除
更新
  • TracNotification

    v2 v3  
    1919TracIni ファイルにデフォルトドメイン名 ('''`smtp_default_domain`''') を指定することでも、単純なユーザ名で通知を受け取ることができるようになります。 (後述する [#ConfigurationOptions コンフィグレーション オプション] を参照してください) 。この場合、ユーザ名にデフォルトドメインが追加されますので、 "イントラネット" 環境で仕様している場合は便利です。 
    2020 
    21 == SMTP 通知のコンフィグレーション == #ConfiguringSMTPNotification 
     21Kerberos / Active Directory 認証に Apache と mod_kerb を使用する際、ユーザ名は ('''`username@EXAMPLE.LOCAL`''') という形式を取ります。これをメールアドレスとして解釈されない様にするためには、 ('''`ignore_domains`''') に Kerberos ドメインを追加します。 
     22 
     23== SMTP 通知の設定 == #ConfiguringSMTPNotification 
    2224 
    2325'''重要:''' TracNotification を正しく動作させるには、[wiki:TracIni trac.ini] に `[trac] base_url` を設定する必要があります。 
     
    2628trac.ini の `[notification]` セクションで設定できるオプションです。[[BR]](訳注: 0.10 以降では `TracIni` マクロを使用することで正確なオプション一覧を取得できます。以下のリストは必要に応じて `[[TracIni(notification)]]` に置き換えて使用してください。) 
    2729 
    28  * '''`smtp_enabled`''': メール通知を有効にします。 
    29  * '''`smtp_from`''': 通知メールの ''Sender''-ヘッダに使用するメールアドレス。 
    30  * '''`smtp_from_name`''': 通知メールの ''Sender''-ヘッダに使用する送信者名。 
     30 * '''`smtp_enabled`''': メール通知を有効にします 
     31 * '''`smtp_from`''': 通知メールの ''Sender''-ヘッダに使用するメールアドレス 
     32 * '''`smtp_from_name`''': 通知メールの ''Sender''-ヘッダに使用する送信者名 
     33 * '''`smtp_from_author`''': (''1.0 以降'') 通知メールの'From:'のヘッダのメールアドレスとして更新者(新しいチケットの報告者、もしくはコメントの作成者)を使用。(default: false) もし更新者がメールアドレスを登録していなかったら、`smtp_from` と `smtp_from_name` が代わりに使用されます 
    3134 * '''`smtp_replyto`''': 通知メールの''Reply-To''-ヘッダに使用するメールアドレス 
    32  * '''`smtp_default_domain`''': (''0.10 以降'') ドメイン名を含んでいないアドレスに特定のドメイン名を追加します。完全修飾されたアドレスは修正されません。ユーザの設定からメールアドレスが分からないときに、デフォルトドメインをすべてのユーザ名 / ログイン名に追加します 
    33  * '''`smtp_always_cc`''': 常に通知メールを送信するメールアドレスのリスト。 ''主に専用MLにチケット更新を通知するのに使用されます'' 
    34  * '''`smtp_always_bcc`''': (''0.10 以降'') 常に通知メールを送信するメールアドレスの一覧。ただし、通知メールの他の受信者からメールアドレスが見えません 
     35 * '''`smtp_default_domain`''': (''0.10 以降'') ドメイン名を含んでいないアドレスに特定のドメイン名を追加します。完全修飾されたアドレスは修正されません。ユーザの設定からメールアドレスが分からないときに、デフォルトドメインをすべてのユーザ名 / ログイン名に追加します 
     36 * '''`smtp_always_cc`''': 常に通知メールを送信するメールアドレスのリスト。 ''主に専用MLにチケット更新を通知するのに使用されます'' 
     37 * '''`smtp_always_bcc`''': (''0.10 以降'') 常に通知メールを送信するメールアドレスの一覧。ただし、通知メールの他の受信者からメールアドレスが見えません 
    3538 * '''`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 * '''`always_notify_reporter`''': 報告者フィールドのすべてのメールアドレスに常に通知メールを送信します (default: false) 
     40 * '''`always_notify_owner`''': (''0.9 以降'') 担当者フィールドのメールアドレスに常に通知メールを送信します (default: false) 
     41 * '''`always_notify_updater`''': (''0.10 以降'') チケットの更新者に常に通知メールを送信します (default: false) 
    3942 * '''`use_public_cc`''': (''0.10 以降'') To: (担当者, 報告者) と CC: のアドレスのリストがすべての受信者に見えるかどうかを設定します ( デフォルトは ''Bcc:'' で見えません) 
    40  * '''`use_short_addr`''': (''0.10 以降'') 通知メールの配信でメールアドレスがドメイン名を含むようにするかどうかを設定します (例 ''@<domain.com>'' で終わらないようにする)。このオプションは SMTP サーバがローカルアドレスをハンドリングでき、ローカルのメールボックスとユーザ名/ログイン名をマップできるような環境、イントラネット内で使用するときに便利です。 
     43 * '''`use_short_addr`''': (''0.10 以降'') 通知メールの配信でメールアドレスがドメイン名を含むようにするかどうかを設定します (例 ''@<domain.com>'' で終わらないようにする)。このオプションは SMTP サーバがローカルアドレスをハンドリングでき、ローカルのメールボックスとユーザ名/ログイン名をマップできるような環境、イントラネット内で使用するときに便利です 
     44 * '''`ignore_domains`''': メールアドレスの一部と見なされるべきでないドメインのカンマ区切りリスト (Kerberos ドメインのユーザ名向け) 
    4145 * '''`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   * `none`: デフォルト値。テキストがプレーンな ASCII 文字コード、もしくはその他 8 ビットの文字コードであるときに、 7 ビットエンコードを使用します 
     47   * `base64`: どのような内容が含まれていても動作します。敏感なアンチスパム / アンチウイルスエンジンではいくつかの問題があるかもしれません 
     48   * `qp` または `quoted-printable`: 8 ビットエンコーディングが使用できない場合、ヨーロッパの言語に対して最適です ( base64 よりもコンパクトです ) 
     49 * '''`ticket_subject_template`''': (''0.11 以降'') 通知メールの件名 (Subject) に使用する [http://genshi.edgewall.org/wiki/Documentation/text-templates.html Genshi テキストテンプレート] 
    4650 * '''`email_sender`''': (''0.12 以降'') `IEmailSender` インタフェースを実装しているコンポーネント名。通知システムは、ここで設定されたコンポーネントを使用してメールを送信します。現在のところ Trac では以下のコンポーネントが提供されています: 
    47    * `SmtpEmailSender`: SMTP サーバに接続してメールを送信する (デフォルト) 
    48    * `SendmailEmailSender`: `sendmail` 互換の実行ファイルを実行してメールを送信する 
     51   * `SmtpEmailSender`: SMTP サーバに接続してメールを送信する (デフォルト) 
     52   * `SendmailEmailSender`: `sendmail` 互換の実行ファイルを実行してメールを送信する 
    4953 
    5054'''`smtp_from`''' か '''`smtp_replyto`''' の一方 (もしくは両方) が ''必ず'' 設定されていなければなりません。設定されていない場合、 Trac は通知メールの送信を拒否します。 
    5155 
    5256以下のオプションは 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] を使用するかどうかを切り替えます 
     57 * '''`smtp_server`''': 通知メッセージに使用されるSMTPサーバ 
     58 * '''`smtp_port`''': (''0.9 以降'') SMTP サーバが使用するポート番号 
     59 * '''`smtp_user`''': (''0.9 以降'') SMTP 認証アカウントのユーザID 
     60 * '''`smtp_password`''': (''0.9 以降'') SMTP 認証アカウントのパスワード 
     61 * '''`use_tls`''': (''0.10 以降'') SMTP サーバ経由で通知メールを送信するときに、GMail などの [http://en.wikipedia.org/wiki/Transport_Layer_Security TLS] を使用するかどうかを切り替えます 
    5862 
    5963以下のオプションは `sendmail` 互換の実行ファイルを使用する場合のメッセージ伝送方法を指定するために使用します。 
    60  * '''`sendmail_path`''': (''0.12 以降'') sendmail の実行ファイルへのパスを設定します。ここで指定する sendmail プログラムは `-i` および `-f` オプションを解釈できなければなりません 
     64 * '''`sendmail_path`''': (''0.12 以降'') sendmail の実行ファイルへのパスを設定します。ここで指定する sendmail プログラムは `-i` および `-f` オプションを解釈できなければなりません 
    6165 
    6266=== コンフィグレーションの例 (SMTP) === #ExampleConfigurationSMTP 
     
    8892テンプレートでは以下の変数が使用可能です: 
    8993 
    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 * `env`: プロジェクトの Environemnt ([http://trac.edgewall.org/browser/trunk/trac/env.py env.py] 参照) 
     95 * `prefix`: `smtp_subject_prefix` で定義したプレフィックス 
     96 * `summary`: チケットの概要 (Summary), 概要が変更されている場合は古い値 
     97 * `ticket`: ticket model オブジェクト ([http://trac.edgewall.org/browser/trunk/trac/ticket/model.py model.py] 参照)。個別のチケット属性は `$ticket.milestone` のように、ドット (.) で区切って (訳注: 英語での) 属性名を加えることで、参照可能 
    9498 
    9599=== メールの内容をカスタマイズする === #Customizingthee-mailcontent 
    96100 
    97 通知メールの内容は `trac/ticket/templates` の `ticket_notify_email.txt` を元に生成されます。編集した `ticket_notify_email.txt` を Environment の templates ディレクトリに配置することで、カスタマイズすることができます。デフォルトはこのようになっています: 
     101通知メールの内容は `trac/templates` の `ticket_notify_email.txt` を基に生成されます。編集した `ticket_notify_email.txt` を Environment の templates ディレクトリに配置することで、カスタマイズすることができます。デフォルトはこのようになっています: 
    98102 
    99103{{{ 
    100104$ticket_body_hdr 
    101105$ticket_props 
    102 #choose ticket.new 
    103   #when True 
     106{% choose ticket.new %}\ 
     107{%   when True %}\ 
    104108$ticket.description 
    105   #end 
    106   #otherwise 
    107     #if changes_body 
    108 Changes (by $change.author): 
     109{%   end %}\ 
     110{%   otherwise %}\ 
     111{%     if changes_body %}\ 
     112${_('Changes (by %(author)s):', author=change.author)} 
    109113 
    110114$changes_body 
    111     #end 
    112     #if changes_descr 
    113       #if not changes_body and not change.comment and change.author 
    114 Description changed by $change.author: 
    115       #end 
     115{%     end %}\ 
     116{%     if changes_descr %}\ 
     117{%       if not changes_body and not change.comment and change.author %}\ 
     118${_('Description changed by %(author)s:', author=change.author)} 
     119{%       end %}\ 
    116120$changes_descr 
    117121-- 
    118     #end 
    119     #if change.comment 
    120  
    121 Comment${not changes_body and '(by %s)' % change.author or ''}: 
     122{%     end %}\ 
     123{%     if change.comment %}\ 
     124 
     125${changes_body and _('Comment:') or _('Comment (by %(author)s):', author=change.author)} 
    122126 
    123127$change.comment 
    124     #end 
    125   #end 
    126 #end 
    127  
    128 --  
    129 Ticket URL: <$ticket.link> 
     128{%     end %}\ 
     129{%   end %}\ 
     130{% end %}\ 
     131 
     132-- 
     133${_('Ticket URL: <%(link)s>', link=ticket.link)} 
    130134$project.name <${project.url or abs_href()}> 
    131135$project.descr 
     
    135139#42: testing 
    136140---------------------------+------------------------------------------------ 
    137        Id:  42             |      Status:  assigned                 
     141       Id:  42             |      Status:  assigned 
    138142Component:  report system  |    Modified:  Fri Apr  9 00:04:31 2004 
    139  Severity:  major          |   Milestone:  0.9                      
    140  Priority:  lowest         |     Version:  0.6                      
    141     Owner:  anonymous      |    Reporter:  jonas@example.com                
     143 Severity:  major          |   Milestone:  0.9 
     144 Priority:  lowest         |     Version:  0.6 
     145    Owner:  anonymous      |    Reporter:  jonas@example.com 
    142146---------------------------+------------------------------------------------ 
    143147Changes: 
     
    157161}}} 
    158162 
     163== MS Outlook 向け E メールカスタマイズ == #Customizinge-mailcontentforMSOutlook 
     164 
     165通常何も設定していなければ、 MS Outlook では可変長フォントのプレーンテキストメールを提示します。そのため、チケットプロパティの表は確実にゴチャゴチャしたように見えます。この問題は、 [#Customizingthee-mailcontent メールテンプレート] のカスタマイズにより解決することができます。 
     166 
     167 
     168テンプレートの2行目を次のように置き換えます: 
     169{{{ 
     170$ticket_props 
     171}}} 
     172 
     173この代わりに (''Python 2.6 以降が必要''): 
     174{{{ 
     175-------------------------------------------------------------------------- 
     176{% with 
     177   pv = [(a[0].strip(), a[1].strip()) for a in [b.split(':') for b in 
     178         [c.strip() for c in 
     179          ticket_props.replace('|', '\n').splitlines()[1:-1]] if ':' in b]]; 
     180   sel = ['Reporter', 'Owner', 'Type', 'Status', 'Priority', 'Milestone', 
     181          'Component', 'Severity', 'Resolution', 'Keywords'] %}\ 
     182${'\n'.join('%s\t%s' % (format(p[0]+':', ' <12'), p[1]) for p in pv if p[0] in sel)} 
     183{% end %}\ 
     184-------------------------------------------------------------------------- 
     185}}} 
     186 
     187チケットプロパティの表は、選択するプロパティのリストに置き換えられます。MS Outlook を使用する際に、デフォルトの表よりわかりやすくなるように、タブ文字で名前と値を分離しています。 
     188{{{#!div style="margin: 1em 1.75em; border:1px dotted" 
     189{{{#!html 
     190#42: testing<br /> 
     191--------------------------------------------------------------------------<br /> 
     192<table cellpadding=0> 
     193<tr><td>Reporter:</td><td>jonas@example.com</td></tr> 
     194<tr><td>Owner:</td><td>anonymous</td></tr> 
     195<tr><td>Type:</td><td>defect</td></tr> 
     196<tr><td>Status:</td><td>assigned</td></tr> 
     197<tr><td>Priority:</td><td>lowest</td></tr> 
     198<tr><td>Milestone:</td><td>0.9</td></tr> 
     199<tr><td>Component:</td><td>report system</td></tr> 
     200<tr><td>Severity:</td><td>major</td></tr> 
     201<tr><td>Resolution:</td><td> </td></tr> 
     202<tr><td>Keywords:</td><td> </td></tr> 
     203</table> 
     204--------------------------------------------------------------------------<br /> 
     205Changes:<br /> 
     206<br /> 
     207&nbsp;&nbsp;* component: &nbsp;changset view =&gt; search system<br /> 
     208&nbsp;&nbsp;* priority: &nbsp;low =&gt; highest<br /> 
     209&nbsp;&nbsp;* owner: &nbsp;jonas =&gt; anonymous<br /> 
     210&nbsp;&nbsp;* cc: &nbsp;daniel@example.com =&gt;<br /> 
     211&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daniel@example.com, jonas@example.com<br /> 
     212&nbsp;&nbsp;* status: &nbsp;new =&gt; assigned<br /> 
     213<br /> 
     214Comment:<br /> 
     215I'm interested too!<br /> 
     216<br /> 
     217--<br /> 
     218Ticket URL: &lt;http://example.com/trac/ticket/42&gt;<br /> 
     219My Project &lt;http://myproj.example.com/&gt;<br /> 
     220}}} 
     221}}} 
     222 
     223**重要**: `sel` にリストされているチケットフィールドのみ HTML メールに含まれます。もし、メールに当然含まなくてはならないカスタムチケットフィールドを定義するのであれば、`sel` に追加しなければなりません。例: 
     224{{{ 
     225   sel = ['Reporter', ..., 'Keywords', 'Custom1', 'Custom2'] 
     226}}} 
     227 
     228しかしながら、 自動的なHTMLフォーマットのメールのように完璧ではありません。それでも、現状のチケットのプロパティをマイクロソフトのアウトルックによって少なくとも読むことは出来ます。。。 
     229 
     230 
    159231== SMTP リレーホストとして GMail を使用する == #UsingGMailastheSMTPrelayhost 
    160232 
     
    174246 
    175247代わりに `smtp_port = 25` を使用することもできます。 (訳注: おそらく `gmail.com` 宛のメールしか届きません)[[br]] 
    176 しかし `smtp_port = 465` は使用できません。これは動作しないだけでなく、通知メール送信がデッドロックします。ポート番号 465 は SMTPS プロトコル (訳注: SSMTP とも言います) に使用されますが、 Trac はこれをサポートしていません。詳しくは [http://trac.edgewall.org/ticket/7107#comment:2 #7107] を参照してください。 
    177   
     248しかし `smtp_port = 465` は使用できません。これは動作しないだけでなく、通知メール送信がデッドロックします。ポート番号 465 は SMTPS プロトコル (訳注: SSMTP とも言います) に使用されますが、 Trac はこれをサポートしていません。詳しくは [trac:comment:2:ticket:7107 #7107] を参照してください。 
     249 
    178250== 自分が変更した通知をフィルタする == #Filteringnotificationsforonesownchanges 
    179251Gmail では、以下のフィルタを使用できます: 
     
    201273== トラブルシューティング == #Troubleshooting 
    202274 
    203 通知メールの設定がうまくいかないとき、最初にログが出力されるようになっているか確かめて下さい。そしてどういうエラーメッセージが出力されているかを見てください。[http://trac.edgewall.org/wiki/TracLogging TracLogging] にログについて書いてあるので見て下さい。 
     275通知メールの設定がうまくいかないとき、最初にログが出力されるようになっているか確かめて下さい。そしてどういうエラーメッセージが出力されているかを見てください。[trac:TracLogging TracLogging] にログについて書いてあるので見て下さい。 
    204276 
    205277通知メールのエラーは Web インタフェースで報告されないので、誰かがチケットを更新したり、新規のチケットを登録しても通知メールが届かないことにまったく気づかないでしょう。 Trac の管理者はエラートレースを追い、ログをみる必要があります。 
     
    226298}}} 
    227299 
    228 このような場合、 Web サーバ が SMTP サーバにメールを送信するときに認証を行うように設定する必要があります。実際の設定は使用している Linux のディストリビューションと現在のセキュリティのポリシーによります。 Trac の [http://trac.edgewall.org/wiki/MailingList MailingList] のアーカイブを参照して下さい。 
     300このような場合、 Web サーバ が SMTP サーバにメールを送信するときに認証を行うように設定する必要があります。実際の設定は使用している Linux のディストリビューションと現在のセキュリティのポリシーによります。 Trac の [trac:MailingList MailingList] のアーカイブを参照して下さい。 
    229301 
    230302関係のあるメーリングリストのスレッド: