Changes between Version 1 and Version 2 of TracNotification
- Timestamp:
- 12/24/20 01:28:05 (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracNotification
v1 v2 2 2 [[TracGuideToc]] 3 3 4 Trac supports notification of ticket changes via email. 5 6 Email notification is useful to keep users up-to-date on tickets /issues of interest, and also provides a convenient way to post all ticket changes to a dedicated mailing list. For example, this is how the [http://lists.edgewall.com/archive/trac-tickets/ Trac-tickets] mailing list is set up.7 8 Disabled by default, notification can be activated and configured in [ wiki:TracIni trac.ini].4 Trac supports notification of ticket changes via email. 5 6 Email notification is useful to keep users up-to-date on tickets of interest, and also provides a convenient way to post all ticket changes to a dedicated mailing list. 7 8 Disabled by default, notification can be activated and configured in [TracIni trac.ini]. 9 9 10 10 == Receiving Notification Mails 11 When reporting a new ticket or adding a comment, enter a valid email address or your Trac username in the ''reporter'', ''assigned to/owner'' or ''cc'' field. Trac will automatically send you an email when changes are made to the ticket, depending on how notification is configured. 11 When reporting a new ticket or adding a comment, enter a valid email address or your Trac username in the ''reporter'', ''assigned to/owner'' or ''cc'' field. Trac may send you an email when changes are made to the ticket, depending on how your notification preferences are configured. 12 13 Permission groups can also be entered in the CC field, 14 to notify all members of the group. 12 15 13 16 === How to use your username to receive notification mails 14 17 15 To receive notification mails, you can either enter a full email address or your Trac username. To get notified with a simple username or login, you need to specify a valid email address in the ''Preferences'' page.18 To receive notification mails, you can either enter a full email address or your Trac username. To get notified with a simple username or login, you need to specify a valid email address in your [/prefs preferences]. 16 19 17 20 Alternatively, a default domain name ('''`smtp_default_domain`''') can be set in the TracIni file, see [#ConfigurationOptions Configuration Options] below. In this case, the default domain will be appended to the username, which can be useful for an "Intranet" kind of installation. … … 29 32 == Configuring SMTP Notification 30 33 31 '''Important:''' For TracNotification to work correctly, the `[trac] base_url` option must be set in [wiki:TracIni trac.ini].34 '''Important:''' The [[TracIni#trac-base_url-option|[trac] base_url]] option must be configured for links in the notification message to be correctly generated. 32 35 33 36 === Configuration Options … … 58 61 59 62 === Subscriber Configuration 60 The default subscriptions are configured in the `[notification-subscriber]` section in trac.ini:63 The default subscriptions are configured in the [TracIni#notification-subscriber-section "[notification-subscriber]"] section. 61 64 62 65 [[TracIni(section=notification-subscriber)]] 63 66 64 Each user can override these defaults in his''Notifications'' preferences.67 Each user can override these defaults in their ''Notifications'' preferences. 65 68 66 69 For example to unsubscribe from notifications for one's own changes and comments, the rule "Never notify: I update a ticket" should be added above other subscription rules. … … 98 101 }}} 99 102 100 === Customizing the e -mail subject101 The e -mail subject can be customized with the `ticket_subject_template` option, which contains a [http://genshi.edgewall.org/wiki/Documentation/text-templates.html Genshi text template] snippet. The default value is:103 === Customizing the email subject 104 The email subject can be customized with the `ticket_subject_template` option, which contains a [https://genshi.edgewall.org/wiki/Documentation/text-templates.html Genshi text template] snippet. The default value is: 102 105 {{{#!genshi 103 106 ${prefix} #${ticket.id}: ${summary} … … 105 108 The following variables are available in the template: 106 109 107 * `env`: The project environment (see [trac:source:/trunk/trac/env.py env.py]). 110 * `changes`: The ticket changes (prepared by [trac:source:/branches/1.4-stable/trac/ticket/model.py Ticket.get_change]). 111 * `env`: The project environment (see [trac:source:/branches/1.4-stable/trac/env.py env.py]). 108 112 * `prefix`: The prefix defined in `smtp_subject_prefix`. 109 113 * `summary`: The ticket summary, with the old value if the summary was edited. 110 * `ticket`: The ticket model object (see [trac:source:/ trunk/trac/ticket/model.py model.py]). Individual ticket fields can be addressed by appending the field name separated by a dot, eg `${ticket.milestone}`.111 112 === Customizing the e -mail content113 114 The notification e -mail content is generated based on `ticket_notify_email.txt` in `trac/ticket/templates`. You can add your own version of this template by adding a `ticket_notify_email.txt` to the templates directory of your environment. The default looks like this:115 116 {{{#! genshi114 * `ticket`: The ticket model object (see [trac:source:/branches/1.4-stable/trac/ticket/model.py model.py]). Individual ticket fields can be addressed by appending the field name separated by a dot, eg `${ticket.milestone}`. 115 116 === Customizing the email content #CustomizingContent 117 118 The notification email content is generated based on `ticket_notify_email.txt` in `trac/ticket/templates`. You can add your own version of this template by adding a `ticket_notify_email.txt` to the templates directory of your environment. The default is: 119 120 {{{#!jinja 117 121 ${ticket_body_hdr} 118 122 ${ticket_props} 119 {% choose ticket.new %}\ 120 {% when True %}\ 123 # if ticket.new: 121 124 ${ticket.description} 122 {% end %}\ 123 {% otherwise %}\ 124 {% if changes_body %}\ 125 # else: 126 # if changes_body: 125 127 ${_('Changes (by %(author)s):', author=change.author)} 126 128 127 129 ${changes_body} 128 {% end %}\ 129 {% if changes_descr %}\ 130 {% if not changes_body and not change.comment and change.author %}\ 130 # endif 131 # if changes_descr: 132 # if not changes_body and not change.comment and change.author: 131 133 ${_('Description changed by %(author)s:', author=change.author)} 132 {% end %}\ 134 # endif 133 135 ${changes_descr} 134 136 -- 135 {% end %}\ 136 {% if change.comment %}\ 137 138 ${changes_body and _('Comment:') or _('Comment (by %(author)s):', author=change.author)} 137 # endif 138 # if change.comment: 139 140 ${_('Comment:') if changes_body else 141 _('Comment (by %(author)s):', author=change.author)} 139 142 140 143 ${change.comment} 141 {% end %}\ 142 {% end %}\ 143 {% end %}\ 144 145 -- 144 # endif 145 # endif 146 ${'-- '} 146 147 ${_('Ticket URL: <%(link)s>', link=ticket.link)} 147 148 ${project.name} <${project.url or abs_href()}> 148 149 ${project.descr} 149 150 }}} 151 152 See the [trac:CookBook/Notification/Templates cookbook] for additional template customization recipes. 150 153 151 154 == Sample Email … … 153 156 #42: testing 154 157 ---------------------------+------------------------------------------------ 155 Id: 42 | Status: assigned 158 Id: 42 | Status: assigned 156 159 Component: report system | Modified: Fri Apr 9 00:04:31 2004 157 Severity: major | Milestone: 0.9 158 Priority: lowest | Version: 0.6 159 Owner: anonymous | Reporter: jonas@example.com 160 Severity: major | Milestone: 0.9 161 Priority: lowest | Version: 0.6 162 Owner: anonymous | Reporter: jonas@example.com 160 163 ---------------------------+------------------------------------------------ 161 164 Changes: … … 175 178 }}} 176 179 177 == Customizing e-mail content for MS Outlook178 179 MS Outlook normally presents plain text e-mails with a variable-width font, and as a result the ticket properties table will most certainly look like a mess in MS Outlook. This can be fixed with some customization of the [#Customizingthee-mailcontent e-mail template].180 181 Replace the following second row in the template:182 {{{183 ${ticket_props}184 }}}185 186 with this (requires Python 2.6 or later):187 {{{188 --------------------------------------------------------------------------189 {% with190 pv = [(a[0].strip(), a[1].strip()) for a in [b.split(':') for b in191 [c.strip() for c in192 ticket_props.replace('|', '\n').splitlines()[1:-1]] if ':' in b]];193 sel = ['Reporter', 'Owner', 'Type', 'Status', 'Priority', 'Milestone',194 'Component', 'Severity', 'Resolution', 'Keywords'] %}\195 ${'\n'.join('%s\t%s' % (format(p[0]+':', ' <12'), p[1]) for p in pv if p[0] in sel)}196 {% end %}\197 --------------------------------------------------------------------------198 }}}199 200 The table of ticket properties is replaced with a list of a selection of the properties. A tab character separates the name and value in such a way that most people should find this more pleasing than the default table when using MS Outlook.201 {{{#!div style="margin: 1em 1.75em; border:1px dotted"202 {{{#!html203 #42: testing<br />204 --------------------------------------------------------------------------<br />205 <table cellpadding=0>206 <tr><td>Reporter:</td><td>jonas@example.com</td></tr>207 <tr><td>Owner:</td><td>anonymous</td></tr>208 <tr><td>Type:</td><td>defect</td></tr>209 <tr><td>Status:</td><td>assigned</td></tr>210 <tr><td>Priority:</td><td>lowest</td></tr>211 <tr><td>Milestone:</td><td>0.9</td></tr>212 <tr><td>Component:</td><td>report system</td></tr>213 <tr><td>Severity:</td><td>major</td></tr>214 <tr><td>Resolution:</td><td> </td></tr>215 <tr><td>Keywords:</td><td> </td></tr>216 </table>217 --------------------------------------------------------------------------<br />218 Changes:<br />219 <br />220 * component: changeset view => search system<br />221 * priority: low => highest<br />222 * owner: jonas => anonymous<br />223 * cc: daniel@example.com =><br />224 daniel@example.com, jonas@example.com<br />225 * status: new => assigned<br />226 <br />227 Comment:<br />228 I'm interested too!<br />229 <br />230 --<br />231 Ticket URL: <http://example.com/trac/ticket/42><br />232 My Project <http://myproj.example.com/><br />233 }}}234 }}}235 236 **Important**: Only those ticket fields that are listed in `sel` are part of the HTML mail. If you have defined custom ticket fields which are to be part of the mail, then they have to be added to `sel`. Example:237 {{{238 sel = ['Reporter', ..., 'Keywords', 'Custom1', 'Custom2']239 }}}240 241 However, the solution is still a workaround to an automatically HTML-formatted e-mail.242 243 180 == Using GMail as the SMTP relay host 244 181 … … 255 192 }}} 256 193 257 where ''user'' and ''password'' match an existing GMail account, ie the ones you use to log in on [http ://gmail.com].194 where ''user'' and ''password'' match an existing GMail account, ie the ones you use to log in on [https://gmail.com]. 258 195 259 196 Alternatively, you can use `smtp_port = 25`.[[br]] … … 262 199 == Troubleshooting 263 200 264 If you cannot get the notification working, first make sure the log is activated and have a look at the log to find if an error message has been logged. See TracLogging for help about the log feature.265 266 Notification errors are not reported through the web interface, so the user who submits a change or a new ticket never gets notified about a notification failure. The Trac administrator needs to look at the log to find the error trace.201 If notifications are not working, inspect the [TracLogging log] for error messages. 202 203 Notification errors are not always reported through the web interface, so the user who submits a change or creates a ticket may not get notified about a notification failure. The Trac administrator needs to look at the log to find the error message and traceback. 267 204 268 205 === ''Permission denied'' error