diff --git a/lib/smtp.js b/lib/smtp.js
index <HASH>..<HASH> 100644
--- a/lib/smtp.js
+++ b/lib/smtp.js
@@ -9,6 +9,7 @@ var Client = function (opts) {
 	this.host = "localhost";
 	this.port = 25;
 	this.buffer = "";
+	this._auth_supported = [ "CRAM-MD5", "LOGIN", "PLAIN" ];
 	this._auth_mechs = [];
 
 	events.EventEmitter.call(this);
@@ -50,7 +51,15 @@ Client.prototype.connect = function () {
 };
 Client.prototype.authenticate = function (username, password, method) {
 	if (typeof method == "undefined") {
-		method = "CRAM-MD5";
+		for (var i = 0; i < this._auth_supported.length; i++) {
+			if (this._auth_mechs.indexOf(this._auth_supported[i]) != -1) {
+				method = this._auth_supported[i];
+			}
+		}
+		if (typeof method == "undefined") {
+			this.emit("err", { "code": 597, "message": "Client seems not to support any server auth mechanism" });
+			return;
+		}
 	} else {
 		method = method.toUpperCase();
 	}
choose the best auth mechanism (when none defined) that is supported by the server