'Send an C{EHLO} to the server.
If L{heloFallback} is C{True}, and there is no requirement for TLS or
authentication, the client will fall back to basic SMTP.
@param code: The server status code from the most recently received
server message.
@type code: L{int}
@param resp: The server status response from the most recently received
server message.
@type resp: L{bytes}
@return: L{None}'

def esmtpState_ehlo(self, code, resp):

    self._expected = SUCCESS
    self._okresponse = self.esmtpState_serverConfig
    self._failresponse = self.esmtpEHLORequired
    if self._tlsMode:
        needTLS = False
    else:
        needTLS = self.requireTransportSecurity
    if (self.heloFallback and (not self.requireAuthentication) and (not needTLS)):
        self._failresponse = self.smtpState_helo
    self.sendLine(('EHLO    ' + self.identity))
