Changes between Version 1 and Version 2 of TracNotification


Ignore:
Timestamp:
09/18/14 10:48:12 (11 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracNotification

    v1 v2  
    88通知機能はデフォルトでは無効になっています。有効化とコンフィグレーションは [wiki:TracIni trac.ini] で行うことができます。
    99
    10 == メール通知を受け取る == #ReceivingNotificationMails
    11 新しいチケットを登録したりコメントを追加する際、 ''報告者'' (英語版では ''reporter'')、 ''担当者'' (英語版では ''assigned to/owner'') もしくは ''関係者'' (英語版では ''cc'') フィールドに有効なメールアドレスを入力してください。チケットに更新があると、 Trac が自動的にメールを送信します。 (どのように通知メール機能を設定しているかによります)
     10== 通知メールを受け取る == #ReceivingNotificationMails
     11新しいチケットを登録したりコメントを追加する際、 ''報告者'' (英語版では ''reporter'')、 ''担当者'' (英語版では ''assigned to/owner'') もしくは ''関係者'' (英語版では ''cc'') フィールドに有効なメールアドレスやユーザ名を入力してください。チケットに更新があると、 Trac が自動的にメールを送信します。 (どのように通知メール機能を設定しているかによります)
    1212
    1313これは、興味のあるチケットや機能追加に関する最新情報を随時受け取りたい場合に便利な機能です。
    1414
    15 == SMTP 通知のコンフィグレーション == #ConfiguringSMTPNotification
     15=== 通知メールで受信するメールアドレスを設定する方法 === #Howtouseyourusernametoreceivenotificationmails
     16
     17完全なメールアドレスあるいはユーザー名を入力することで、通知メールを受け取ることができます。 単純なユーザ名やログイン名で通知を受け取るには、''ユーザ設定 (Preferences)'' ページで、正しいメールアドレスを入力する必要があります。
     18
     19TracIni ファイルにデフォルトドメイン名 ('''`smtp_default_domain`''') を指定することでも、単純なユーザ名で通知を受け取ることができるようになります。 (後述する [#ConfigurationOptions コンフィグレーション オプション] を参照してください) 。この場合、ユーザ名にデフォルトドメインが追加されますので、 "イントラネット" 環境で仕様している場合は便利です。
     20
     21Kerberos / Active Directory 認証に Apache と mod_kerb を使用する際、ユーザ名は ('''`username@EXAMPLE.LOCAL`''') という形式を取ります。これをメールアドレスとして解釈されない様にするためには、 ('''`ignore_domains`''') に Kerberos ドメインを追加します。
     22
     23== SMTP 通知の設定 == #ConfiguringSMTPNotification
     24
     25'''重要:''' TracNotification を正しく動作させるには、[wiki:TracIni trac.ini] に `[trac] base_url` を設定する必要があります。
    1626
    1727=== コンフィグレーション オプション === #ConfigurationOptions
    1828trac.ini の `[notification]` セクションで設定できるオプションです。[[BR]](訳注: 0.10 以降では `TracIni` マクロを使用することで正確なオプション一覧を取得できます。以下のリストは必要に応じて `[[TracIni(notification)]]` に置き換えて使用してください。)
     29
    1930 * '''`smtp_enabled`''': メール通知を有効にします。
    2031 * '''`smtp_from`''': 通知メールの ''Sender''-ヘッダに使用するメールアドレス。
    2132 * '''`smtp_from_name`''': 通知メールの ''Sender''-ヘッダに使用する送信者名。
    22  * '''`smtp_replyto`''': 通知メールの''Reply-To''-ヘッダに使用するメールアドレス
     33 * '''`smtp_replyto`''': 通知メールの''Reply-To''-ヘッダに使用するメールアドレス
    2334 * '''`smtp_default_domain`''': (''0.10 以降'') ドメイン名を含んでいないアドレスに特定のドメイン名を追加します。完全修飾されたアドレスは修正されません。ユーザの設定からメールアドレスが分からないときに、デフォルトドメインをすべてのユーザ名 / ログイン名に追加します。
    2435 * '''`smtp_always_cc`''': 常に通知メールを送信するメールアドレスのリスト。 ''主に専用MLにチケット更新を通知するのに使用されます。''
     
    3041 * '''`use_public_cc`''': (''0.10 以降'') To: (担当者, 報告者) と CC: のアドレスのリストがすべての受信者に見えるかどうかを設定します ( デフォルトは ''Bcc:'' で見えません)
    3142 * '''`use_short_addr`''': (''0.10 以降'') 通知メールの配信でメールアドレスがドメイン名を含むようにするかどうかを設定します (例 ''@<domain.com>'' で終わらないようにする)。このオプションは SMTP サーバがローカルアドレスをハンドリングでき、ローカルのメールボックスとユーザ名/ログイン名をマップできるような環境、イントラネット内で使用するときに便利です。
    32  * '''`mime_encoding`''': (''0.10 以降'') 通知メールは常に 7-bit モードで送信されます。このオプションで MIME エンコードの選択ができます。利用可能な値は以下の通りです:
    33    * `base64`: デフォルトの値です。どのような種類の内容にも対応できます。 デリケートな アンチスパム / アンチウイルス エンジンにひっかかるかもしれません。
    34    * `qp` または `quoted-printable`: ヨーロッパの言語に適しています。 (base64 よりコンパクトです) non-ASCII テキストには推奨できません。 (base64 のほうがコンパクトになります )
    35    * `none`: エンコードしません。英語のみ (ASCII) で使用できます。 non-ASCII 文字を含んでいるメールは配信されないでしょう。
    36  * '''`ticket_subject_template`''': (''0.11 以降'') 通知メールの件名 (Subject) に使用する [http://genshi.edgewall.org/wiki/Documentation/text-templates.html Genshi テキストテンプレート] 。
     43 * '''`ignore_domains`''': メールアドレスの一部と見なされるべきでないドメインのカンマ区切りリスト。 (Kerberos ドメインのユーザ名向け)
     44 * '''`mime_encoding`''': (''0.10 以降'') MIME のエンコードのスキームを選択します。サポートする値:
     45   * `none`: デフォルト値。テキストがプレーンな ASCII 文字コード、もしくはその他 8 ビットの文字コードであるときに、 7 ビットエンコードを使用します。
     46   * `base64`: どのような内容が含まれていても動作します。敏感なアンチスパム / アンチウイルスエンジンではいくつかの問題があるかもしれません。
     47   * `qp` または `quoted-printable`: 8 ビットエンコーディングが使用できない場合、ヨーロッパの言語に対して最適です ( base64 よりもコンパクトです )。
     48 * '''`ticket_subject_template`''': (''0.11 以降'') 通知メールの件名 (Subject) に使用する [http://genshi.edgewall.org/wiki/Documentation/text-templates.html Genshi テキストテンプレート] 。  * '''`ticket_subject_template`''': (''0.11 以降'') 通知メールの件名 (Subject) に使用する [http://genshi.edgewall.org/wiki/Documentation/text-templates.html Genshi テキストテンプレート] 。
     49 * '''`email_sender`''': (''0.12 以降'') `IEmailSender` インタフェースを実装しているコンポーネント名。通知システムは、ここで設定されたコンポーネントを使用してメールを送信します。現在のところ Trac では以下のコンポーネントが提供されています:
     50   * `SmtpEmailSender`: SMTP サーバに接続してメールを送信する (デフォルト)。
     51   * `SendmailEmailSender`: `sendmail` 互換の実行ファイルを実行してメールを送信する。
    3752
    3853'''`smtp_from`''' か '''`smtp_replyto`''' の一方 (もしくは両方) が ''必ず'' 設定されていなければなりません。設定されていない場合、 Trac は通知メールの送信を拒否します。
     
    4156 * '''`smtp_server`''': 通知メッセージに使用されるSMTPサーバ。
    4257 * '''`smtp_port`''': (''0.9 以降'') SMTP サーバが使用するポート番号。
    43  * '''`smtp_user`''': (''0.9 以降'') SMTP認証アカウントのユーザID。
    44  * '''`smtp_password`''': (''0.9 以降'') SMTP認証アカウントのパスワード。
     58 * '''`smtp_user`''': (''0.9 以降'') SMTP 認証アカウントのユーザID。
     59 * '''`smtp_password`''': (''0.9 以降'') SMTP 認証アカウントのパスワード。
    4560 * '''`use_tls`''': (''0.10 以降'') SMTP サーバ経由で通知メールを送信するときに、GMail などの [http://en.wikipedia.org/wiki/Transport_Layer_Security TLS] を使用するかどうかを切り替えます。
    4661
     62以下のオプションは `sendmail` 互換の実行ファイルを使用する場合のメッセージ伝送方法を指定するために使用します。
     63 * '''`sendmail_path`''': (''0.12 以降'') sendmail の実行ファイルへのパスを設定します。ここで指定する sendmail プログラムは `-i` および `-f` オプションを解釈できなければなりません。
    4764
    4865=== コンフィグレーションの例 (SMTP) === #ExampleConfigurationSMTP
     
    5673}}}
    5774
     75=== コンフィグレーションの例 (`sendmail`) === #ExampleConfigurationsendmail
     76{{{
     77[notification]
     78smtp_enabled = true
     79email_sender = SendmailEmailSender
     80sendmail_path = /usr/sbin/sendmail
     81smtp_from = notifier@example.com
     82smtp_replyto = myproj@projects.example.com
     83smtp_always_cc = ticketmaster@example.com, theboss+myproj@example.com
     84}}}
    5885
    5986=== メールの件名をカスタマイズする === #Customizingthee-mailsubject
     
    6996 * `ticket`: ticket model オブジェクト ([http://trac.edgewall.org/browser/trunk/trac/ticket/model.py model.py] 参照)。個別のチケット属性は `$ticket.milestone` のように、ドット (.) で区切って (訳注: 英語での) 属性名を加えることで、参照可能。
    7097
     98=== メールの内容をカスタマイズする === #Customizingthee-mailcontent
     99
     100通知メールの内容は `trac/templates` の `ticket_notify_email.txt` を基に生成されます。編集した `ticket_notify_email.txt` を Environment の templates ディレクトリに配置することで、カスタマイズすることができます。デフォルトはこのようになっています:
     101
     102{{{
     103$ticket_body_hdr
     104$ticket_props
     105{% choose ticket.new %}\
     106{%   when True %}\
     107$ticket.description
     108{%   end %}\
     109{%   otherwise %}\
     110{%     if changes_body %}\
     111${_('Changes (by %(author)s):', author=change.author)}
     112
     113$changes_body
     114{%     end %}\
     115{%     if changes_descr %}\
     116{%       if not changes_body and not change.comment and change.author %}\
     117${_('Description changed by %(author)s:', author=change.author)}
     118{%       end %}\
     119$changes_descr
     120--
     121{%     end %}\
     122{%     if change.comment %}\
     123
     124${changes_body and _('Comment:') or _('Comment (by %(author)s):', author=change.author)}
     125
     126$change.comment
     127{%     end %}\
     128{%   end %}\
     129{% end %}\
     130
     131--
     132${_('Ticket URL: <%(link)s>', link=ticket.link)}
     133$project.name <${project.url or abs_href()}>
     134$project.descr
     135}}}
    71136== Email サンプル == #SampleEmail
    72137{{{
    73138#42: testing
    74139---------------------------+------------------------------------------------
    75        Id:  42             |      Status:  assigned               
     140       Id:  42             |      Status:  assigned
    76141Component:  report system  |    Modified:  Fri Apr  9 00:04:31 2004
    77  Severity:  major          |   Milestone:  0.9                     
    78  Priority:  lowest         |     Version:  0.6                     
    79     Owner:  anonymous      |    Reporter:  jonas@example.com               
     142 Severity:  major          |   Milestone:  0.9
     143 Priority:  lowest         |     Version:  0.6
     144    Owner:  anonymous      |    Reporter:  jonas@example.com
    80145---------------------------+------------------------------------------------
    81146Changes:
     
    95160}}}
    96161
     162== MS Outlook 向け E メールカスタマイズ == #Customizinge-mailcontentforMSOutlook
     163
     164通常何も設定していなければ、 MS Outlook では可変長フォントのプレーンテキストメールを提示します。そのため、チケットプロパティの表は確実にゴチャゴチャしたように見えます。この問題は、 [#Customizingthee-mailcontent メールテンプレート] のカスタマイズにより解決することができます。
     165
     166
     167テンプレートの2行目を次のように置き換えます:
     168{{{
     169$ticket_props
     170}}}
     171
     172この代わりに (''Python 2.6 以降が必要''):
     173{{{
     174--------------------------------------------------------------------------
     175{% with
     176   pv = [(a[0].strip(), a[1].strip()) for a in [b.split(':') for b in
     177         [c.strip() for c in
     178          ticket_props.replace('|', '\n').splitlines()[1:-1]] if ':' in b]];
     179   sel = ['Reporter', 'Owner', 'Type', 'Status', 'Priority', 'Milestone',
     180          'Component', 'Severity', 'Resolution', 'Keywords'] %}\
     181${'\n'.join('%s\t%s' % (format(p[0]+':', ' <12'), p[1]) for p in pv if p[0] in sel)}
     182{% end %}\
     183--------------------------------------------------------------------------
     184}}}
     185
     186チケットプロパティの表は、選択するプロパティのリストに置き換えられます。MS Outlook を使用する際に、デフォルトの表よりわかりやすくなるように、タブ文字で名前と値を分離しています。
     187{{{#!div style="margin: 1em 1.75em; border:1px dotted"
     188{{{#!html
     189#42: testing<br />
     190--------------------------------------------------------------------------<br />
     191<table cellpadding=0>
     192<tr><td>Reporter:</td><td>jonas@example.com</td></tr>
     193<tr><td>Owner:</td><td>anonymous</td></tr>
     194<tr><td>Type:</td><td>defect</td></tr>
     195<tr><td>Status:</td><td>assigned</td></tr>
     196<tr><td>Priority:</td><td>lowest</td></tr>
     197<tr><td>Milestone:</td><td>0.9</td></tr>
     198<tr><td>Component:</td><td>report system</td></tr>
     199<tr><td>Severity:</td><td>major</td></tr>
     200<tr><td>Resolution:</td><td> </td></tr>
     201<tr><td>Keywords:</td><td> </td></tr>
     202</table>
     203--------------------------------------------------------------------------<br />
     204Changes:<br />
     205<br />
     206&nbsp;&nbsp;* component: &nbsp;changset view =&gt; search system<br />
     207&nbsp;&nbsp;* priority: &nbsp;low =&gt; highest<br />
     208&nbsp;&nbsp;* owner: &nbsp;jonas =&gt; anonymous<br />
     209&nbsp;&nbsp;* cc: &nbsp;daniel@example.com =&gt;<br />
     210&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;daniel@example.com, jonas@example.com<br />
     211&nbsp;&nbsp;* status: &nbsp;new =&gt; assigned<br />
     212<br />
     213Comment:<br />
     214I'm interested too!<br />
     215<br />
     216--<br />
     217Ticket URL: &lt;http://example.com/trac/ticket/42&gt;<br />
     218My Project &lt;http://myproj.example.com/&gt;<br />
     219}}}
     220}}}
     221
     222**重要**: `sel` にリストされているチケットフィールドのみ HTML メールに含まれます。もし、メールに当然含まなくてはならないカスタムチケットフィールドを定義するのであれば、`sel` に追加しなければなりません。例:
     223{{{
     224   sel = ['Reporter', ..., 'Keywords', 'Custom1', 'Custom2']
     225}}}
     226
     227しかしながら、 自動的なHTMLフォーマットのメールのように完璧ではありません。それでも、現状のチケットのプロパティをマイクロソフトのアウトルックによって少なくとも読むことは出来ます。。。
     228
     229
    97230== SMTP リレーホストとして GMail を使用する == #UsingGMailastheSMTPrelayhost
    98231
     
    113246代わりに `smtp_port = 25` を使用することもできます。 (訳注: おそらく `gmail.com` 宛のメールしか届きません)[[br]]
    114247しかし `smtp_port = 465` は使用できません。これは動作しないだけでなく、通知メール送信がデッドロックします。ポート番号 465 は SMTPS プロトコル (訳注: SSMTP とも言います) に使用されますが、 Trac はこれをサポートしていません。詳しくは [http://trac.edgewall.org/ticket/7107#comment:2 #7107] を参照してください。
    115  
     248
    116249== 自分が変更した通知をフィルタする == #Filteringnotificationsforonesownchanges
    117250Gmail では、以下のフィルタを使用できます:
     
    121254}}}
    122255
    123 通知メールを削除する場合などに使用してください。
     256Trac 0.10 の場合は、下記のフィルタを使用してください:
     257{{{
     258from:(<smtp_from>) (("Reporter: <username>" -Changes -Comment) OR "Changes (by <username>)" OR "Comment (by <username>)")
     259}}}
     260
     261通知メールを削除する場合などにも使用できます。
    124262
    125263Thunderbird で IMAP を使用している場合は、この方法は使えません
     
    163301関係のあるメーリングリストのスレッド:
    164302 * SELinux: http://article.gmane.org/gmane.comp.version-control.subversion.trac.general/7518
    165  
     303
     304Fedora 10 の SELinux では下記のコマンドで対処できます:
     305{{{
     306$ setsebool -P httpd_can_sendmail 1
     307}}}
    166308=== ''Suspected spam'' エラー === #Suspectedspamerror
    167309
     
    170312Trac はデフォルトで通知メールを Base64 エンコーディングして受信者に送信します。メールの本文 (Body) 全体がエンコードされる (訳注:チケットのタイトルに日本語が含まれる場合、通知メールの Subject ヘッダも utf-8 base64 エンコーディングされます) ので、繊細なメールサーバ上の ''false positive'' な SPAM 発見プログラムのトリガになってしまいます。このような状況に遭遇した場合、 `mime_encoding` オプションでデフォルトのエンコーディングを "quoted-printable" に変更することを推奨します。
    171313
    172 "quoted-printable" エンコーディングは ラテン系の文字セットで使用すると効果があります。アジア系の文字セットでは、 Base64 エンコーディングに固定することを推奨します。
    173 
    174 (訳注: 日本語のメールで主に使用されるエンコードは `ISO-2022-JP` ですが、 Trac が送信する通知メールは `UTF-8` でエンコードされ、さらに `BASE64` か `quoted-printable` で 7bit-safe な形式にエンコードされます。
    175 `ISO-2022-JP` エンコーディングでない日本語のメールは Spam 検出エンジンに誤判定されやすくなる傾向があるようです。
    176 また、 MUA がこれらのエンコードに対応していない場合、たとえ受信できたとしても文字化けしたり表示できない可能性があります。)
     314"quoted-printable" エンコーディングは ラテン系の文字セットで使用すると効果があります。アジア系の文字セットでは、 Base64 エンコーディングに固定することを推奨します。 (訳注: 日本語のメールで主に使用されるエンコードは `ISO-2022-JP` ですが、 Trac が送信する通知メールは `UTF-8` でエンコードされ、さらに `BASE64` か `quoted-printable` で 7bit-safe な形式にエンコードされます。 `ISO-2022-JP` エンコーディングでない日本語のメールは Spam 検出エンジンに誤判定されやすくなる傾向があるようです。また、 MUA がこれらのエンコードに対応していない場合、たとえ受信できたとしても文字化けしたり表示できない可能性があります。)
     315
     316=== ''501, 5.5.4 Invalid Address'' エラー === #a5015.5.4InvalidAddresserror
     317
     318IIS 6.0 で
     319{{{
     320Failure sending notification on change to ticket #1: SMTPHeloError: (501, '5.5.4 Invalid Address')
     321}}}
     322上記のエラーが trac のログにでる場合、 [http://support.microsoft.com/kb/291828 ここ]を参考に解決してください。
     323
    177324
    178325----