class Net::SMTP

def authenticate(user, secret, authtype = DEFAULT_AUTH_TYPE)

arguments differently.
Different authenticators may interpret the +user+ and +secret+
All arguments-other than +authtype+-are forwarded to the authenticator.

+authtype+ is the name of a SASL authentication mechanism.

Authenticates with the server, using the "AUTH" command.
def authenticate(user, secret, authtype = DEFAULT_AUTH_TYPE)
  check_auth_args authtype, user, secret
  authenticator = Authenticator.auth_class(authtype).new(self)
  authenticator.auth(user, secret)
end