'Validate the address for which a message is destined.
@type user: L{User}
@param user: The destination address.
@rtype: L{Deferred <defer.Deferred>} which successfully fires with
no-argument callable which returns L{IMessage <smtp.IMessage>}
provider.
@return: A deferred which successfully fires with a no-argument
callable which returns a message receiver for the destination.
@raise SMTPBadRcpt: When messages cannot be accepted for the
destination address.'

def validateTo(self, user):

    if (self.user and self.service.queue):
        d = self.service.domains.get(user.dest.domain, None)
        if (d is None):
            d = relay.DomainQueuer(self.service, True)
    else:
        d = self.service.domains[user.dest.domain]
    return defer.maybeDeferred(d.exists, user)
