'Check the validity of the specified set of options and
configure authentication.
@raise UsageError: When the set of options is invalid.'

def postOptions(self):

    from twisted.internet import reactor
    if (self['esmtp'] and (self['hostname'] is None)):
        raise usage.UsageError('--esmtp    requires    --hostname')
    if ('credCheckers' in self):
        for ch in self['credCheckers']:
            self.service.smtpPortal.registerChecker(ch)
    if (not self['disable-anonymous']):
        self.service.smtpPortal.registerChecker(checkers.AllowAnonymousAccess())
    anything = False
    for service in self._protoDefaults:
        self[service] = self._getEndpoints(reactor, service)
        if self[service]:
            anything = True
    if (not anything):
        raise usage.UsageError('You    cannot    disable    all    protocols')
