Changes between Version 2 and Version 3 of TracNotification
- Timestamp:
- Jun 17, 2013, 1:35:49 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracNotification
v2 v3 19 19 TracIni ファイルにデフォルトドメイン名 ('''`smtp_default_domain`''') を指定することでも、単純なユーザ名で通知を受け取ることができるようになります。 (後述する [#ConfigurationOptions コンフィグレーション オプション] を参照してください) 。この場合、ユーザ名にデフォルトドメインが追加されますので、 "イントラネット" 環境で仕様している場合は便利です。 20 20 21 == SMTP 通知のコンフィグレーション == #ConfiguringSMTPNotification 21 Kerberos / Active Directory 認証に Apache と mod_kerb を使用する際、ユーザ名は ('''`username@EXAMPLE.LOCAL`''') という形式を取ります。これをメールアドレスとして解釈されない様にするためには、 ('''`ignore_domains`''') に Kerberos ドメインを追加します。 22 23 == SMTP 通知の設定 == #ConfiguringSMTPNotification 22 24 23 25 '''重要:''' TracNotification を正しく動作させるには、[wiki:TracIni trac.ini] に `[trac] base_url` を設定する必要があります。 … … 26 28 trac.ini の `[notification]` セクションで設定できるオプションです。[[BR]](訳注: 0.10 以降では `TracIni` マクロを使用することで正確なオプション一覧を取得できます。以下のリストは必要に応じて `[[TracIni(notification)]]` に置き換えて使用してください。) 27 29 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` が代わりに使用されます 31 34 * '''`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 以降'') 常に通知メールを送信するメールアドレスの一覧。ただし、通知メールの他の受信者からメールアドレスが見えません 35 38 * '''`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) 39 42 * '''`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 ドメインのユーザ名向け) 41 45 * '''`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 テキストテンプレート] 46 50 * '''`email_sender`''': (''0.12 以降'') `IEmailSender` インタフェースを実装しているコンポーネント名。通知システムは、ここで設定されたコンポーネントを使用してメールを送信します。現在のところ Trac では以下のコンポーネントが提供されています: 47 * `SmtpEmailSender`: SMTP サーバに接続してメールを送信する (デフォルト) 。48 * `SendmailEmailSender`: `sendmail` 互換の実行ファイルを実行してメールを送信する 。51 * `SmtpEmailSender`: SMTP サーバに接続してメールを送信する (デフォルト) 52 * `SendmailEmailSender`: `sendmail` 互換の実行ファイルを実行してメールを送信する 49 53 50 54 '''`smtp_from`''' か '''`smtp_replyto`''' の一方 (もしくは両方) が ''必ず'' 設定されていなければなりません。設定されていない場合、 Trac は通知メールの送信を拒否します。 51 55 52 56 以下のオプションは 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] を使用するかどうかを切り替えます 58 62 59 63 以下のオプションは `sendmail` 互換の実行ファイルを使用する場合のメッセージ伝送方法を指定するために使用します。 60 * '''`sendmail_path`''': (''0.12 以降'') sendmail の実行ファイルへのパスを設定します。ここで指定する sendmail プログラムは `-i` および `-f` オプションを解釈できなければなりません 。64 * '''`sendmail_path`''': (''0.12 以降'') sendmail の実行ファイルへのパスを設定します。ここで指定する sendmail プログラムは `-i` および `-f` オプションを解釈できなければなりません 61 65 62 66 === コンフィグレーションの例 (SMTP) === #ExampleConfigurationSMTP … … 88 92 テンプレートでは以下の変数が使用可能です: 89 93 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` のように、ドット (.) で区切って (訳注: 英語での) 属性名を加えることで、参照可能 94 98 95 99 === メールの内容をカスタマイズする === #Customizingthee-mailcontent 96 100 97 通知メールの内容は `trac/t icket/templates` の `ticket_notify_email.txt` を元に生成されます。編集した `ticket_notify_email.txt` を Environment の templates ディレクトリに配置することで、カスタマイズすることができます。デフォルトはこのようになっています:101 通知メールの内容は `trac/templates` の `ticket_notify_email.txt` を基に生成されます。編集した `ticket_notify_email.txt` を Environment の templates ディレクトリに配置することで、カスタマイズすることができます。デフォルトはこのようになっています: 98 102 99 103 {{{ 100 104 $ticket_body_hdr 101 105 $ticket_props 102 #choose ticket.new 103 #when True 106 {% choose ticket.new %}\ 107 {% when True %}\ 104 108 $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)} 109 113 110 114 $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 %}\ 116 120 $changes_descr 117 121 -- 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)} 122 126 123 127 $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)} 130 134 $project.name <${project.url or abs_href()}> 131 135 $project.descr … … 135 139 #42: testing 136 140 ---------------------------+------------------------------------------------ 137 Id: 42 | Status: assigned 141 Id: 42 | Status: assigned 138 142 Component: 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 142 146 ---------------------------+------------------------------------------------ 143 147 Changes: … … 157 161 }}} 158 162 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 /> 205 Changes:<br /> 206 <br /> 207 * component: changset view => search system<br /> 208 * priority: low => highest<br /> 209 * owner: jonas => anonymous<br /> 210 * cc: daniel@example.com =><br /> 211 daniel@example.com, jonas@example.com<br /> 212 * status: new => assigned<br /> 213 <br /> 214 Comment:<br /> 215 I'm interested too!<br /> 216 <br /> 217 --<br /> 218 Ticket URL: <http://example.com/trac/ticket/42><br /> 219 My Project <http://myproj.example.com/><br /> 220 }}} 221 }}} 222 223 **重要**: `sel` にリストされているチケットフィールドのみ HTML メールに含まれます。もし、メールに当然含まなくてはならないカスタムチケットフィールドを定義するのであれば、`sel` に追加しなければなりません。例: 224 {{{ 225 sel = ['Reporter', ..., 'Keywords', 'Custom1', 'Custom2'] 226 }}} 227 228 しかしながら、 自動的なHTMLフォーマットのメールのように完璧ではありません。それでも、現状のチケットのプロパティをマイクロソフトのアウトルックによって少なくとも読むことは出来ます。。。 229 230 159 231 == SMTP リレーホストとして GMail を使用する == #UsingGMailastheSMTPrelayhost 160 232 … … 174 246 175 247 代わりに `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 178 250 == 自分が変更した通知をフィルタする == #Filteringnotificationsforonesownchanges 179 251 Gmail では、以下のフィルタを使用できます: … … 201 273 == トラブルシューティング == #Troubleshooting 202 274 203 通知メールの設定がうまくいかないとき、最初にログが出力されるようになっているか確かめて下さい。そしてどういうエラーメッセージが出力されているかを見てください。[ http://trac.edgewall.org/wiki/TracLogging TracLogging] にログについて書いてあるので見て下さい。275 通知メールの設定がうまくいかないとき、最初にログが出力されるようになっているか確かめて下さい。そしてどういうエラーメッセージが出力されているかを見てください。[trac:TracLogging TracLogging] にログについて書いてあるので見て下さい。 204 276 205 277 通知メールのエラーは Web インタフェースで報告されないので、誰かがチケットを更新したり、新規のチケットを登録しても通知メールが届かないことにまったく気づかないでしょう。 Trac の管理者はエラートレースを追い、ログをみる必要があります。 … … 226 298 }}} 227 299 228 このような場合、 Web サーバ が SMTP サーバにメールを送信するときに認証を行うように設定する必要があります。実際の設定は使用している Linux のディストリビューションと現在のセキュリティのポリシーによります。 Trac の [ http://trac.edgewall.org/wiki/MailingList MailingList] のアーカイブを参照して下さい。300 このような場合、 Web サーバ が SMTP サーバにメールを送信するときに認証を行うように設定する必要があります。実際の設定は使用している Linux のディストリビューションと現在のセキュリティのポリシーによります。 Trac の [trac:MailingList MailingList] のアーカイブを参照して下さい。 229 301 230 302 関係のあるメーリングリストのスレッド: