Extension Point : IEmailDecorator
| Interface | IEmailDecorator | Since | 1.1.3 | 
| Module | trac.notification | Source | api.py | 
An IEmailDecorator decorates notification email, usually by adding additional email headers.
Purpose
Trac provides an extendible and flexible notification system, that historically has sent emails formatted by some fixed logic.
Now plugins can implement different transports and formatters, decoupling the formatting logic from the transport implementation. IEmailDecorator allows also decoupling e.g. email title formatting and other header manipulation both from transport-neutral formatting logic and the email transport implementation.
Usage
Implementing the interface follows the standard guidelines found in TracDev/ComponentArchitecture and of course TracDev/PluginDevelopment.
The decorate_message() decorates the email message as appropriate. The parameters are:
event: Atrac.notification.api.NotificationEventinstance describing the event about which the recipients should be notified.message: Anemail.message.Messageto decorate.charset: Aemail.charset.Charsetto use for headers.
Examples
The following example adds a custom X-Trac-Notification-Author header to emails:
from trac.core import * from trac.notification.api import IEmailDecorator from trac.notification.mail import set_header class AuthorEmailDecorator(Component): implements(IEmailDecorator) # IEmailDecorator methods def decorate_message(self, event, message, charset): set_header(message, 'X-Trac-Notification-Author', event.author, charset)
See wiki:CookBook/Notification/Email for more examples.
Available Implementations
- trac.notification.mail.AlwaysEmailDecorator: Implements 
smtp_always_ccandsmtp_always_bccconfiguration options. 
Additional Information and References
History
- This interface originated in th:AnnouncerPlugin as 
IAnnouncementEmailDecorator. - 1.1.3: Integrated 
IEmailDecoratorin Trac as part of this proposal (#3517)- Removed continuation-passing style (
next_decorator()). - Added 
charsetparameter. 
 - Removed continuation-passing style (
 


