doc/source/vmm_emailaddress.rst
author martin f. krafft <madduck@madduck.net>
Wed, 11 Apr 2012 16:23:27 +0200
branchv0.6.x
changeset 518 5ec2068d02af
parent 216 0c8c053b451c
permissions -rw-r--r--
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: 2


This module provides the :class:`EmailAddress` class to handle validated e-mail
addresses.


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
  >>>