'Handle a PASS command.
If a USER command was previously received, authenticate the user and
complete the authorization process with the L{_cbMailbox} callback
function on success or the L{_ebMailbox} and L{_ebUnexpected} errback
functions on failure.  If a USER command was not previously received,
send an error response.
@type password: L{bytes}
@param password: A password.'

def do_PASS(self, password):

    if (self._userIs is None):
        self.failResponse('USER    required    before    PASS')
        return
    user = self._userIs
    self._userIs = None
    d = defer.maybeDeferred(self.authenticateUserPASS, user, password)
    d.addCallbacks(self._cbMailbox, self._ebMailbox, callbackArgs=(user,)).addErrback(self._ebUnexpected)
