|Version 6 (modified by 6 years ago) ( diff ),|
Extension Point : IEmailAddressResolver
The IEmailAddressResolver is a fallback mechanism for determining which email address should be used to send notifications.
Trac provides an extendible and flexible notification system, that historically has sent emails to the email address specified in the user preferences or in the CC, reporter or author fields.
Now plugins can add additional ways to find an email address for a Trac session that has no email address specified in the user preferences.
get_address_for_session() method returns the email address for the given session or
None. The parameters are:
sid: The Trac session ID.
authenticated: 1 if the Trac session ID is authenticated, 0 otherwise.
The following naively uses LDAP to retrieve the email address.
import ldap from trac.core import * from trac.notification.api import IEmailAddressResolver class LdapEmailAddressResolver(Component): implements(IEmailAddressResolver) # IEmailAddressResolver methods def get_address_for_session(self, sid, authenticated): address = None ld = ldap.initialize('ldap://localhost:1390') ld.simple_bind_s() for dn, entry in ld.search_s('ou=people,dc=example,dc=com', ldap.SCOPE_SUBTREE, '(cn=%s)' % sid, ['mail']): if 'mail' in entry: address = entry['mail'] ld.unbind_s() return address
Additional Information and References
- API Reference
- Related tickets: