Changes between Version 14 and Version 15 of TracNotification
- Timestamp:
- 22/06/2017 14:04:01 (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracNotification
v14 v15 4 4 Trac supports notification of ticket changes via email. 5 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].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 … … 13 13 === How to use your username to receive notification mails 14 14 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.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 your [/prefs preferences]. 16 16 17 17 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 29 == Configuring SMTP Notification 30 30 31 '''Important:''' For TracNotification to work correctly, the `[trac] base_url` option must be set in [wiki:TracIni trac.ini].31 '''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 32 33 33 === Configuration Options … … 58 58 59 59 === Subscriber Configuration 60 The default subscriptions are configured in the `[notification-subscriber]` section in trac.ini:60 The default subscriptions are configured in the [TracIni#notification-subscriber-section "[notification-subscriber]"] section. 61 61 62 62 [[TracIni(section=notification-subscriber)]] 63 63 64 Each user can override these defaults in his''Notifications'' preferences.64 Each user can override these defaults in their ''Notifications'' preferences. 65 65 66 66 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. … … 105 105 The following variables are available in the template: 106 106 107 * `env`: The project environment (see [trac:source:/trunk/trac/env.py env.py]).107 * `env`: The project environment object (see [trac:source:/trunk/trac/env.py env.py]). 108 108 * `prefix`: The prefix defined in `smtp_subject_prefix`. 109 109 * `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 a ddressed by appending the field name separated by a dot, eg `${ticket.milestone}`.110 * `ticket`: The ticket model object (see [trac:source:/trunk/trac/ticket/model.py model.py]). Individual ticket fields can be accessed by appending the field name separated by a dot, eg `${ticket.milestone}`. 111 111 112 112 === Customizing the e-mail content 113 113 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: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 is: 115 115 116 116 {{{#!genshi 117 117 ${ticket_body_hdr} 118 118 ${ticket_props} 119 {% choose ticket.new %}\ 120 {% when True %}\ 119 # if ticket.new: 121 120 ${ticket.description} 122 {% end %}\ 123 {% otherwise %}\ 124 {% if changes_body %}\ 121 # else: 122 # if changes_body: 125 123 ${_('Changes (by %(author)s):', author=change.author)} 126 124 127 125 ${changes_body} 128 {% end %}\ 129 {% if changes_descr %}\ 130 {% if not changes_body and not change.comment and change.author %}\ 126 # endif 127 # if changes_descr: 128 # if not changes_body and not change.comment and change.author: 131 129 ${_('Description changed by %(author)s:', author=change.author)} 132 {% end %}\ 130 # endif 133 131 ${changes_descr} 134 132 -- 135 {% end %}\ 136 {% if change.comment %}\ 137 138 ${changes_body and _('Comment:') or _('Comment (by %(author)s):', author=change.author)} 133 # endif 134 # if change.comment: 135 136 ${_('Comment:') if changes_body else 137 _('Comment (by %(author)s):', author=change.author)} 139 138 140 139 ${change.comment} 141 {% end %}\ 142 {% end %}\ 143 {% end %}\ 144 145 -- 140 # endif 141 # endif 142 -- 146 143 ${_('Ticket URL: <%(link)s>', link=ticket.link)} 147 144 ${project.name} <${project.url or abs_href()}> 148 145 ${project.descr} 149 146 }}} 147 148 See the [trac:CookBook/Notification/Templates cookbook] for additional template customization recipes. 150 149 151 150 == Sample Email … … 175 174 }}} 176 175 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 176 == Using GMail as the SMTP relay host 244 177 … … 262 195 == Troubleshooting 263 196 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.197 If notifications are not working, inspect the [TracLogging log] for error messages. 198 199 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 200 268 201 === ''Permission denied'' error