Changes between Version 1 and Version 2 of TracNotification
- Timestamp:
- 09/18/14 10:48:12 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracNotification
v1 v2 8 8 通知機能はデフォルトでは無効になっています。有効化とコンフィグレーションは [wiki:TracIni trac.ini] で行うことができます。 9 9 10 == メール通知を受け取る == #ReceivingNotificationMails11 新しいチケットを登録したりコメントを追加する際、 ''報告者'' (英語版では ''reporter'')、 ''担当者'' (英語版では ''assigned to/owner'') もしくは ''関係者'' (英語版では ''cc'') フィールドに有効なメールアドレス を入力してください。チケットに更新があると、 Trac が自動的にメールを送信します。 (どのように通知メール機能を設定しているかによります)10 == 通知メールを受け取る == #ReceivingNotificationMails 11 新しいチケットを登録したりコメントを追加する際、 ''報告者'' (英語版では ''reporter'')、 ''担当者'' (英語版では ''assigned to/owner'') もしくは ''関係者'' (英語版では ''cc'') フィールドに有効なメールアドレスやユーザ名を入力してください。チケットに更新があると、 Trac が自動的にメールを送信します。 (どのように通知メール機能を設定しているかによります) 12 12 13 13 これは、興味のあるチケットや機能追加に関する最新情報を随時受け取りたい場合に便利な機能です。 14 14 15 == SMTP 通知のコンフィグレーション == #ConfiguringSMTPNotification 15 === 通知メールで受信するメールアドレスを設定する方法 === #Howtouseyourusernametoreceivenotificationmails 16 17 完全なメールアドレスあるいはユーザー名を入力することで、通知メールを受け取ることができます。 単純なユーザ名やログイン名で通知を受け取るには、''ユーザ設定 (Preferences)'' ページで、正しいメールアドレスを入力する必要があります。 18 19 TracIni ファイルにデフォルトドメイン名 ('''`smtp_default_domain`''') を指定することでも、単純なユーザ名で通知を受け取ることができるようになります。 (後述する [#ConfigurationOptions コンフィグレーション オプション] を参照してください) 。この場合、ユーザ名にデフォルトドメインが追加されますので、 "イントラネット" 環境で仕様している場合は便利です。 20 21 Kerberos / 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` を設定する必要があります。 16 26 17 27 === コンフィグレーション オプション === #ConfigurationOptions 18 28 trac.ini の `[notification]` セクションで設定できるオプションです。[[BR]](訳注: 0.10 以降では `TracIni` マクロを使用することで正確なオプション一覧を取得できます。以下のリストは必要に応じて `[[TracIni(notification)]]` に置き換えて使用してください。) 29 19 30 * '''`smtp_enabled`''': メール通知を有効にします。 20 31 * '''`smtp_from`''': 通知メールの ''Sender''-ヘッダに使用するメールアドレス。 21 32 * '''`smtp_from_name`''': 通知メールの ''Sender''-ヘッダに使用する送信者名。 22 * '''`smtp_replyto`''': 通知メールの''Reply-To''-ヘッダに使用するメールアドレス 33 * '''`smtp_replyto`''': 通知メールの''Reply-To''-ヘッダに使用するメールアドレス。 23 34 * '''`smtp_default_domain`''': (''0.10 以降'') ドメイン名を含んでいないアドレスに特定のドメイン名を追加します。完全修飾されたアドレスは修正されません。ユーザの設定からメールアドレスが分からないときに、デフォルトドメインをすべてのユーザ名 / ログイン名に追加します。 24 35 * '''`smtp_always_cc`''': 常に通知メールを送信するメールアドレスのリスト。 ''主に専用MLにチケット更新を通知するのに使用されます。'' … … 30 41 * '''`use_public_cc`''': (''0.10 以降'') To: (担当者, 報告者) と CC: のアドレスのリストがすべての受信者に見えるかどうかを設定します ( デフォルトは ''Bcc:'' で見えません) 31 42 * '''`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` 互換の実行ファイルを実行してメールを送信する。 37 52 38 53 '''`smtp_from`''' か '''`smtp_replyto`''' の一方 (もしくは両方) が ''必ず'' 設定されていなければなりません。設定されていない場合、 Trac は通知メールの送信を拒否します。 … … 41 56 * '''`smtp_server`''': 通知メッセージに使用されるSMTPサーバ。 42 57 * '''`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 認証アカウントのパスワード。 45 60 * '''`use_tls`''': (''0.10 以降'') SMTP サーバ経由で通知メールを送信するときに、GMail などの [http://en.wikipedia.org/wiki/Transport_Layer_Security TLS] を使用するかどうかを切り替えます。 46 61 62 以下のオプションは `sendmail` 互換の実行ファイルを使用する場合のメッセージ伝送方法を指定するために使用します。 63 * '''`sendmail_path`''': (''0.12 以降'') sendmail の実行ファイルへのパスを設定します。ここで指定する sendmail プログラムは `-i` および `-f` オプションを解釈できなければなりません。 47 64 48 65 === コンフィグレーションの例 (SMTP) === #ExampleConfigurationSMTP … … 56 73 }}} 57 74 75 === コンフィグレーションの例 (`sendmail`) === #ExampleConfigurationsendmail 76 {{{ 77 [notification] 78 smtp_enabled = true 79 email_sender = SendmailEmailSender 80 sendmail_path = /usr/sbin/sendmail 81 smtp_from = notifier@example.com 82 smtp_replyto = myproj@projects.example.com 83 smtp_always_cc = ticketmaster@example.com, theboss+myproj@example.com 84 }}} 58 85 59 86 === メールの件名をカスタマイズする === #Customizingthee-mailsubject … … 69 96 * `ticket`: ticket model オブジェクト ([http://trac.edgewall.org/browser/trunk/trac/ticket/model.py model.py] 参照)。個別のチケット属性は `$ticket.milestone` のように、ドット (.) で区切って (訳注: 英語での) 属性名を加えることで、参照可能。 70 97 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 }}} 71 136 == Email サンプル == #SampleEmail 72 137 {{{ 73 138 #42: testing 74 139 ---------------------------+------------------------------------------------ 75 Id: 42 | Status: assigned 140 Id: 42 | Status: assigned 76 141 Component: 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 80 145 ---------------------------+------------------------------------------------ 81 146 Changes: … … 95 160 }}} 96 161 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 /> 204 Changes:<br /> 205 <br /> 206 * component: changset view => search system<br /> 207 * priority: low => highest<br /> 208 * owner: jonas => anonymous<br /> 209 * cc: daniel@example.com =><br /> 210 daniel@example.com, jonas@example.com<br /> 211 * status: new => assigned<br /> 212 <br /> 213 Comment:<br /> 214 I'm interested too!<br /> 215 <br /> 216 --<br /> 217 Ticket URL: <http://example.com/trac/ticket/42><br /> 218 My Project <http://myproj.example.com/><br /> 219 }}} 220 }}} 221 222 **重要**: `sel` にリストされているチケットフィールドのみ HTML メールに含まれます。もし、メールに当然含まなくてはならないカスタムチケットフィールドを定義するのであれば、`sel` に追加しなければなりません。例: 223 {{{ 224 sel = ['Reporter', ..., 'Keywords', 'Custom1', 'Custom2'] 225 }}} 226 227 しかしながら、 自動的なHTMLフォーマットのメールのように完璧ではありません。それでも、現状のチケットのプロパティをマイクロソフトのアウトルックによって少なくとも読むことは出来ます。。。 228 229 97 230 == SMTP リレーホストとして GMail を使用する == #UsingGMailastheSMTPrelayhost 98 231 … … 113 246 代わりに `smtp_port = 25` を使用することもできます。 (訳注: おそらく `gmail.com` 宛のメールしか届きません)[[br]] 114 247 しかし `smtp_port = 465` は使用できません。これは動作しないだけでなく、通知メール送信がデッドロックします。ポート番号 465 は SMTPS プロトコル (訳注: SSMTP とも言います) に使用されますが、 Trac はこれをサポートしていません。詳しくは [http://trac.edgewall.org/ticket/7107#comment:2 #7107] を参照してください。 115 248 116 249 == 自分が変更した通知をフィルタする == #Filteringnotificationsforonesownchanges 117 250 Gmail では、以下のフィルタを使用できます: … … 121 254 }}} 122 255 123 通知メールを削除する場合などに使用してください。 256 Trac 0.10 の場合は、下記のフィルタを使用してください: 257 {{{ 258 from:(<smtp_from>) (("Reporter: <username>" -Changes -Comment) OR "Changes (by <username>)" OR "Comment (by <username>)") 259 }}} 260 261 通知メールを削除する場合などにも使用できます。 124 262 125 263 Thunderbird で IMAP を使用している場合は、この方法は使えません … … 163 301 関係のあるメーリングリストのスレッド: 164 302 * SELinux: http://article.gmane.org/gmane.comp.version-control.subversion.trac.general/7518 165 303 304 Fedora 10 の SELinux では下記のコマンドで対処できます: 305 {{{ 306 $ setsebool -P httpd_can_sendmail 1 307 }}} 166 308 === ''Suspected spam'' エラー === #Suspectedspamerror 167 309 … … 170 312 Trac はデフォルトで通知メールを Base64 エンコーディングして受信者に送信します。メールの本文 (Body) 全体がエンコードされる (訳注:チケットのタイトルに日本語が含まれる場合、通知メールの Subject ヘッダも utf-8 base64 エンコーディングされます) ので、繊細なメールサーバ上の ''false positive'' な SPAM 発見プログラムのトリガになってしまいます。このような状況に遭遇した場合、 `mime_encoding` オプションでデフォルトのエンコーディングを "quoted-printable" に変更することを推奨します。 171 313 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 318 IIS 6.0 で 319 {{{ 320 Failure sending notification on change to ticket #1: SMTPHeloError: (501, '5.5.4 Invalid Address') 321 }}} 322 上記のエラーが trac のログにでる場合、 [http://support.microsoft.com/kb/291828 ここ]を参考に解決してください。 323 177 324 178 325 ----