15 | | == SMTP 通知のコンフィグレーション == |
16 | | |
17 | | === コンフィグレーション オプション === |
18 | | trac.ini の ''[notification]'' セクションで設定できるオプションです。 |
19 | | [[BR]](訳注: 0.10 以降では `TracIni` マクロを使用することで正確なオプション一覧を取得できます。以下のリストは必要に応じて `[[TracIni(notification)]]` に置き換えて使用してください。) |
20 | | * '''smtp_enabled''': メール通知を有効にします。 |
21 | | * '''smtp_server''': 通知メッセージに使用されるSMTPサーバ。 |
22 | | * '''smtp_user''': (''0.9'' 以降) SMTP認証アカウントのユーザID。 |
23 | | * '''smtp_password''': (''0.9 以降'') SMTP認証アカウントのパスワード。 |
24 | | * '''smtp_from''': 通知メールの''Sender''-ヘッダに使用するメールアドレス。 |
25 | | * '''smtp_replyto''': 通知メールの''Reply-To''-ヘッダに使用するメールアドレス |
26 | | * '''smtp_default_domain''': (''0.10 以降'') ドメイン名を含んでいないアドレスに特定のドメイン名を追加します。完全修飾されたアドレスは修正されません。ユーザの設定からメールアドレスが分からないときに、デフォルトドメインをすべてのユーザ名 / ログイン名に追加します。 |
27 | | * '''smtp_always_cc''': 常に通知メールを送信するメールアドレスのリスト。 ''主に専用MLにチケット更新を通知するのに使用されます。'' |
28 | | * '''smtp_always_bcc''': (''0.10 以降'') 常に通知メールを送信するメールアドレスの一覧。ただし、通知メールの他の受信者からメールアドレスが見えません。 |
29 | | * '''always_notify_reporter''': 報告者フィールドのすべてのメールアドレスに常に通知メールを送信します。 |
30 | | * '''always_notify_owner''': (''0.9 以降'') 担当者フィールドのメールアドレスに常に通知メールを送信します。 |
31 | | * '''always_notify_updater''': (''0.10 以降'') チケットの更新者に常に通知メールを送信します。 |
32 | | * '''use_public_cc''': (''0.10 以降'') To: (担当者, 報告者) と CC: のアドレスのリストがすべての受信者に見えるかどうかを設定します ( デフォルトは ''Bcc:'' で見えません) |
33 | | * '''use_short_addr''': (''0.10 以降'') 通知メールの配信でメールアドレスがドメイン名を含むようにするかどうかを設定します (例 ''@<domain.com>'' で終わらないようにする)。このオプションは SMTP サーバがローカルアドレスをハンドリングでき、ローカルのメールボックスとユーザ名/ログイン名をマップできるような環境、イントラネット内で使用するときに便利です。 |
34 | | * '''mime_encoding''': (''0.10 以降'') 通知メールは常に 7-bit モードで送信されます。このオプションで MIME エンコードの選択ができます。利用可能な値は以下の通りです: |
35 | | * `base64`: デフォルトの値です。どのような種類の内容にも対応できます。 デリケートな アンチスパム / アンチウイルス エンジンにひっかかるかもしれません。 |
36 | | * `qp` または `quoted-printable`: ヨーロッパの言語に適しています。 (base64 よりコンパクトです) non-ASCII テキストには推奨できません。 (base64 のほうがコンパクトになります ) |
37 | | * `none`: エンコードしません。英語のみ (ASCII) で使用できます。 non-ASCII 文字を含んでいるメールは配信されないでしょう。 |
38 | | |
39 | | '''smtp_from''' か '''smtp_replyto''' の一方 (もしくは両方) が ''必ず'' 設定されていなければなりません。設定されていない場合、 Trac は通知メールの送信を拒否します。 |
40 | | |
41 | | === コンフィグレーション例 === |
42 | | |
| 15 | === 通知メールで受信するメールアドレスを設定する方法 === #Howtouseyourusernametoreceivenotificationmails |
| 16 | |
| 17 | 完全なメールアドレスあるいはユーザー名を入力することで、通知メールを受け取ることができます。 単純なユーザ名やログイン名で通知を受け取るには、''ユーザ設定 (Preferences)'' ページで、正しいメールアドレスを入力する必要があります。 |
| 18 | |
| 19 | TracIni ファイルにデフォルトドメイン名 ('''`smtp_default_domain`''') を指定することでも、単純なユーザ名で通知を受け取ることができるようになります。 (後述する [#ConfigurationOptions コンフィグレーション オプション] を参照してください) 。この場合、ユーザ名にデフォルトドメインが追加されますので、 "イントラネット" 環境で仕様している場合は便利です。 |
| 20 | |
| 21 | == SMTP 通知のコンフィグレーション == #ConfiguringSMTPNotification |
| 22 | |
| 23 | '''重要:''' TracNotification を正しく動作させるには、[wiki:TracIni trac.ini] に `[trac] base_url` を設定する必要があります。 |
| 24 | |
| 25 | === コンフィグレーション オプション === #ConfigurationOptions |
| 26 | trac.ini の `[notification]` セクションで設定できるオプションです。[[BR]](訳注: 0.10 以降では `TracIni` マクロを使用することで正確なオプション一覧を取得できます。以下のリストは必要に応じて `[[TracIni(notification)]]` に置き換えて使用してください。) |
| 27 | |
| 28 | * '''`smtp_enabled`''': メール通知を有効にします。 |
| 29 | * '''`smtp_from`''': 通知メールの ''Sender''-ヘッダに使用するメールアドレス。 |
| 30 | * '''`smtp_from_name`''': 通知メールの ''Sender''-ヘッダに使用する送信者名。 |
| 31 | * '''`smtp_replyto`''': 通知メールの''Reply-To''-ヘッダに使用するメールアドレス |
| 32 | * '''`smtp_default_domain`''': (''0.10 以降'') ドメイン名を含んでいないアドレスに特定のドメイン名を追加します。完全修飾されたアドレスは修正されません。ユーザの設定からメールアドレスが分からないときに、デフォルトドメインをすべてのユーザ名 / ログイン名に追加します。 |
| 33 | * '''`smtp_always_cc`''': 常に通知メールを送信するメールアドレスのリスト。 ''主に専用MLにチケット更新を通知するのに使用されます。'' |
| 34 | * '''`smtp_always_bcc`''': (''0.10 以降'') 常に通知メールを送信するメールアドレスの一覧。ただし、通知メールの他の受信者からメールアドレスが見えません。 |
| 35 | * '''`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 | * '''`use_public_cc`''': (''0.10 以降'') To: (担当者, 報告者) と CC: のアドレスのリストがすべての受信者に見えるかどうかを設定します ( デフォルトは ''Bcc:'' で見えません) |
| 40 | * '''`use_short_addr`''': (''0.10 以降'') 通知メールの配信でメールアドレスがドメイン名を含むようにするかどうかを設定します (例 ''@<domain.com>'' で終わらないようにする)。このオプションは SMTP サーバがローカルアドレスをハンドリングでき、ローカルのメールボックスとユーザ名/ログイン名をマップできるような環境、イントラネット内で使用するときに便利です。 |
| 41 | * '''`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 | * '''`email_sender`''': (''0.12 以降'') `IEmailSender` インタフェースを実装しているコンポーネント名。通知システムは、ここで設定されたコンポーネントを使用してメールを送信します。現在のところ Trac では以下のコンポーネントが提供されています: |
| 47 | * `SmtpEmailSender`: SMTP サーバに接続してメールを送信する (デフォルト)。 |
| 48 | * `SendmailEmailSender`: `sendmail` 互換の実行ファイルを実行してメールを送信する。 |
| 49 | |
| 50 | '''`smtp_from`''' か '''`smtp_replyto`''' の一方 (もしくは両方) が ''必ず'' 設定されていなければなりません。設定されていない場合、 Trac は通知メールの送信を拒否します。 |
| 51 | |
| 52 | 以下のオプションは 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] を使用するかどうかを切り替えます。 |
| 58 | |
| 59 | 以下のオプションは `sendmail` 互換の実行ファイルを使用する場合のメッセージ伝送方法を指定するために使用します。 |
| 60 | * '''`sendmail_path`''': (''0.12 以降'') sendmail の実行ファイルへのパスを設定します。ここで指定する sendmail プログラムは `-i` および `-f` オプションを解釈できなければなりません。 |
| 61 | |
| 62 | === コンフィグレーションの例 (SMTP) === #ExampleConfigurationSMTP |
52 | | == Emailサンプル == |
| 72 | === コンフィグレーションの例 (`sendmail`) === #ExampleConfigurationsendmail |
| 73 | {{{ |
| 74 | [notification] |
| 75 | smtp_enabled = true |
| 76 | email_sender = SendmailEmailSender |
| 77 | sendmail_path = /usr/sbin/sendmail |
| 78 | smtp_from = notifier@example.com |
| 79 | smtp_replyto = myproj@projects.example.com |
| 80 | smtp_always_cc = ticketmaster@example.com, theboss+myproj@example.com |
| 81 | }}} |
| 82 | |
| 83 | === メールの件名をカスタマイズする === #Customizingthee-mailsubject |
| 84 | `ticket_subject_template` オプションを使用することでメールの件名をカスタマイズできます。このオプションには [http://genshi.edgewall.org/wiki/Documentation/text-templates.html Genshi テキストテンプレート] を含めることができます。デフォルト値は以下の通りです: |
| 85 | {{{ |
| 86 | $prefix #$ticket.id: $summary |
| 87 | }}} |
| 88 | テンプレートでは以下の変数が使用可能です: |
| 89 | |
| 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 | |
| 95 | === メールの内容をカスタマイズする === #Customizingthee-mailcontent |
| 96 | |
| 97 | 通知メールの内容は `trac/ticket/templates` の `ticket_notify_email.txt` を元に生成されます。編集した `ticket_notify_email.txt` を Environment の templates ディレクトリに配置することで、カスタマイズすることができます。デフォルトはこのようになっています: |
| 98 | |
| 99 | {{{ |
| 100 | $ticket_body_hdr |
| 101 | $ticket_props |
| 102 | #choose ticket.new |
| 103 | #when True |
| 104 | $ticket.description |
| 105 | #end |
| 106 | #otherwise |
| 107 | #if changes_body |
| 108 | Changes (by $change.author): |
| 109 | |
| 110 | $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 |
| 116 | $changes_descr |
| 117 | -- |
| 118 | #end |
| 119 | #if change.comment |
| 120 | |
| 121 | Comment${not changes_body and '(by %s)' % change.author or ''}: |
| 122 | |
| 123 | $change.comment |
| 124 | #end |
| 125 | #end |
| 126 | #end |
| 127 | |
| 128 | -- |
| 129 | Ticket URL: <$ticket.link> |
| 130 | $project.name <${project.url or abs_href()}> |
| 131 | $project.descr |
| 132 | }}} |
| 133 | == Email サンプル == #SampleEmail |
78 | | == トラブルシューティング == |
| 159 | == SMTP リレーホストとして GMail を使用する == #UsingGMailastheSMTPrelayhost |
| 160 | |
| 161 | 以下のような設定を使用します |
| 162 | {{{ |
| 163 | [notification] |
| 164 | smtp_enabled = true |
| 165 | use_tls = true |
| 166 | mime_encoding = base64 |
| 167 | smtp_server = smtp.gmail.com |
| 168 | smtp_port = 587 |
| 169 | smtp_user = user |
| 170 | smtp_password = password |
| 171 | }}} |
| 172 | |
| 173 | ''user'' と ''password'' の箇所は、 GMail のアカウントで置き換えてください。 ''たとえば'' [http://gmail.com] にログインするときに使用しているものです。 |
| 174 | |
| 175 | 代わりに `smtp_port = 25` を使用することもできます。 (訳注: おそらく `gmail.com` 宛のメールしか届きません)[[br]] |
| 176 | しかし `smtp_port = 465` は使用できません。これは動作しないだけでなく、通知メール送信がデッドロックします。ポート番号 465 は SMTPS プロトコル (訳注: SSMTP とも言います) に使用されますが、 Trac はこれをサポートしていません。詳しくは [http://trac.edgewall.org/ticket/7107#comment:2 #7107] を参照してください。 |
| 177 | |
| 178 | == 自分が変更した通知をフィルタする == #Filteringnotificationsforonesownchanges |
| 179 | Gmail では、以下のフィルタを使用できます: |
| 180 | |
| 181 | {{{ |
| 182 | from:(<smtp_from>) (("Reporter: <username>" -Changes) OR "Changes (by <username>)") |
| 183 | }}} |
| 184 | |
| 185 | Trac 0.10 の場合は、下記のフィルタを使用してください: |
| 186 | {{{ |
| 187 | from:(<smtp_from>) (("Reporter: <username>" -Changes -Comment) OR "Changes (by <username>)" OR "Comment (by <username>)") |
| 188 | }}} |
| 189 | |
| 190 | 通知メールを削除する場合などにも使用できます。 |
| 191 | |
| 192 | Thunderbird で IMAP を使用している場合は、この方法は使えません |
| 193 | (http://kb.mozillazine.org/Filters_(Thunderbird)#Filtering_the_message_body 参照)。 |
| 194 | |
| 195 | 最良の方法は conf/trac.ini の "always_notify_updater" を false に設定することです。 |
| 196 | しかし、この方法では自分が担当者 (owner) になっていたり、報告 (reporter) したチケットへのコメントが取得できなくなります。 |
| 197 | |
| 198 | プラグインを追加することで解決するかもしれません: |
| 199 | http://trac-hacks.org/wiki/NeverNotifyUpdaterPlugin |
| 200 | |
| 201 | == トラブルシューティング == #Troubleshooting |