Enable interpolation of alias destinations
This patch modifies the virtual_alias_maps function so that the destination
address is parsed for the place holders %n, %d and %=, which are replaced with
the localpart, the domain or the full address with '@' replaced by '=' of the
queried key.
In combination with alias domains, this allows for domain-specific recipients.
E.g. given example.org and its alias domain example.com, defining an alias
postmaster@example.org → postmaster+%d@example.org
will cause mail to postmaster@example.*com* to go to
postmaster+example.*com*@example.org.
:mod:`VirtualMailManager.EmailAddress` --- Handling of e-mail addresses=======================================================================..module:: VirtualMailManager.EmailAddress:synopsis: Handling of e-mail addresses..moduleauthor:: Pascal Volk <neverseen@users.sourceforge.net>..toctree:::maxdepth: 2This module provides the :class:`EmailAddress` class to handle validated e-mailaddresses.EmailAddress------------..class:: EmailAddress(address) Creates a new EmailAddress instance.:param address: string representation of an e-mail addresses:type address::obj:`basestring`:raise VirtualMailManager.errors.EmailAddressError: if the*address* is syntactically wrong.:raise VirtualMailManager.errors.VMMError: if the validation of the local-part or domain name fails. An EmailAddress instance has the both read-only attributes: ..attribute:: localpart The local-part of the address *local-part@domain* ..attribute:: domainname The domain part of the address *local-part@domain*Examples-------- >>> from VirtualMailManager.EmailAddress import EmailAddress >>> john = EmailAddress('john.doe@example.com') >>> john.localpart 'john.doe' >>> john.domainname 'example.com' >>> jane = EmailAddress('jane.doe@example.com') >>> jane != john True >>> EmailAddress('info@xn--pypal-4ve.tld') == EmailAddress(u'info@pаypal.tld') True >>> jane EmailAddress('jane.doe@example.com') >>> print john john.doe@example.com >>>