Go to the latest version of this document.

# ``twisted`.`mail`.`maildir`.`MaildirDirdbmDomain``

class documentation

`class MaildirDirdbmDomain(AbstractMaildirDomain): (source)`

Constructor: `MaildirDirdbmDomain(service, root, postmaster)`

Implements interfaces: `twisted.cred.portal.IRealm`

View In Hierarchy

A maildir-backed domain where membership is checked with a `DirDBM` database.

The directory structure of a MaildirDirdbmDomain is:

/passwd <-- a DirDBM directory

/USER/{cur, new, del} <-- each user has these three directories

Method | `__init__` | No summary
Method | `addUser` | Add a user to this domain by adding an entry in the authentication database and initializing the user's mail directory.
Method | `getCredentialsCheckers` | Return credentials checkers for this domain.
Method | `requestAvatar` | Get the mailbox for an authenticated user.
Method | `userDirectory` | Return the path to a user's mail directory.
Class Variable | `portal` | Undocumented
Instance Variable | `dbm` | The authentication database for the domain.
Instance Variable | `postmaster` | See `__init__`.
Instance Variable | `_credcheckers` | Undocumented

Inherited from `AbstractMaildirDomain`:

Method | `exists` | Check whether a user exists in this domain or an alias of it.
Method | `setAliasGroup` | Set the group of defined aliases for this domain.
Method | `startMessage` | Create a maildir message for a user.
Method | `willRelay` | Check whether this domain will relay.
Instance Variable | `alias` | A mapping of username to alias.
Instance Variable | `root` | See `__init__`.

def __init__(self, service: `MailService`, root: `bytes`, postmaster: `bool` = False): (source)
overrides `twisted.mail.maildir.AbstractMaildirDomain.__init__`

Parameters
service:`MailService` | An email service.
root:`bytes` | The maildir root directory.
postmaster:`bool` | A flag indicating whether non-existent addresses should be forwarded to the postmaster (`True`) or bounced (`False`).

def addUser(self, user: `bytes`, password: `bytes`): (source)
from `twisted.mail.interfaces.IDomain`
overrides `twisted.mail.maildir.AbstractMaildirDomain.addUser`

Add a user to this domain by adding an entry in the authentication database and initializing the user's mail directory.

Parameters
user:`bytes` | A username.
password:`bytes` | A password.

def getCredentialsCheckers(self): (source)
from `twisted.mail.interfaces.IDomain`
overrides `twisted.mail.maildir.AbstractMaildirDomain.getCredentialsCheckers`

Return credentials checkers for this domain.

Returns
`list` of `ICredentialsChecker` provider | Credentials checkers for this domain.

def requestAvatar(self, avatarId: `bytes | tuple[]`, mind: `object`, *interfaces: `type[Interface]`) -> `tuple[type[Interface], object, Callable[[], None]]`: (source)
from `twisted.cred.portal.IRealm`
overrides `twisted.mail.maildir.AbstractMaildirDomain.requestAvatar`

Get the mailbox for an authenticated user.

The mailbox for the authenticated user will be returned only if the given interfaces include `IMailbox`. Requests for anonymous access will be met with a mailbox containing a message indicating that an internal error has occurred.

Parameters
avatarId:`bytes` or `twisted.cred.checkers.ANONYMOUS` | A string which identifies a user or an object which signals a request for anonymous access.
mind:`None` | Unused.
*interfaces:n-`tuple` of `zope.interface.Interface` | A group of interfaces, one of which the avatar must support.

Returns
3-`tuple` of (0) `IMailbox`, (1) `IMailbox` provider, (2) no-argument callable | A tuple of the supported interface, a mailbox, and a logout function.

Raises
`NotImplementedError` | When the given interfaces do not include `IMailbox`.

def userDirectory(self, name: `bytes`) -> `bytes | None`: (source)
overrides `twisted.mail.maildir.AbstractMaildirDomain.userDirectory`

Return the path to a user's mail directory.

Parameters
name:`bytes` | A username.

Returns
`bytes | None` | The path to the user's mail directory for a valid user. For an invalid user, the path to the postmaster's mailbox if bounces are redirected there. Otherwise, `None`.

portal = (source)

Undocumented

dbm: `DirDBM` = (source)

The authentication database for the domain.

postmaster = (source)

See `__init__`.

_credcheckers = (source)

Undocumented