'Create an L{ESMTPManagedRelayer}.
@type addr: L{IAddress <twisted.internet.interfaces.IAddress>} provider
@param addr: The address of the ESMTP server.
@rtype: L{ESMTPManagedRelayer}
@return: A managed relayer for ESMTP.'

def buildProtocol(self, addr):

    s = (self.secret and self.secret(addr))
    protocol = self.protocol(self.messages, self.manager, s, self.contextFactory, *self.pArgs, **self.pKwArgs)
    protocol.factory = self
    return protocol
