Changes between Initial Version and Version 1 of TracNotification


Ignore:
Timestamp:
Nov 17, 2012, 6:20:07 PM (12 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracNotification

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