Changing some fail returns to throws

When remote server respond with unexpected message (invalid greeting from server, invalid reponse for EHLO/HELO, recipient failure) client will hang till timeout, - better to fail immediately with proper fail message.