Smtp-Authentifizierungsproblem

V

VScan

Hallo,

bei der Authentifizierung über Smtp bekomme ich immer beim Passwort die Fehlernummer 535 Authentication failure.

Hab auch schon in den RFC's zu smtp, asmtp, esmtp, usw. nachgelesen, aber ich komm auf keinen grünen...

Bei gmail oder 1und1 funktioniert der Code einwandfrei, nur bei revido.de nicht, da stoppt er beim Passwort.

Kann man die Authentifizierung auch anders durchführen, denn bei outlook hat das revido-postfach auch keine macken gemacht und es wurde auch keine Verschlüsselung benötigt!?

Code:
         private enum SMTPResponse : int
        {
            CONNECT_SUCCESS = 220,
            GENERIC_SUCCESS = 250,
            DATA_SUCCESS = 354,
            PASS_LOGIN = 334,
            PASS_SUCCESS = 235,
            QUIT_SUCCESS = 221
        }
Code:
            sock.Connect(endPoint);
            if (!Check_Response(sock, SMTPResponse.CONNECT_SUCCESS))
            {
                sock.Close();
                return;
            }

            Senddata(sock, string.Format("HELO {0}\r\n",   Dns.GetHostName()));
            if (!Check_Response(sock, SMTPResponse.GENERIC_SUCCESS))
            {
                sock.Close();
                return;
            }

            Senddata(sock, string.Format("AUTH LOGIN\r\n"));
            if (!Check_Response(sock, SMTPResponse.PASS_LOGIN))
            {
                sock.Close();
                return;
            }
            else
            {
                Senddata(sock,   System.Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(Username)) +   "\r\n");
                if (!Check_Response(sock, SMTPResponse.PASS_LOGIN))
                {
                    sock.Close();
                    return;
                }
                else
                {
                    Senddata(sock,   System.Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(Password)) +   "\r\n");
                    if (!Check_Response(sock,   SMTPResponse.PASS_SUCCESS))
                    {
                        sock.Close();
                        return;
                    }
                }
            }
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hallo,

da das Problem immer noch offen ist (vorher per PN nachgefragt) push ich den nochma hoch.
Hast du schon versucht, dich einmal mit telnet zu verbinden?
Code:
telnet <SMTP-SERVER> 25

Hier kannst du die Befehle der Reihe nach von Hand absetzen. Geh die Kommunikation einmal so durch (HELO, AUTH etc.) und schau ob es so geht. Ausserdem versuche mal statt dem AUTH LOGIN mal den AUTH PLAIN Login, evtl mag er ja nur den anderen nicht.

Soweit ich weiß funktioniert die PLAIN Authentifizierung so:
Code:
Benutzername<NULL>Kontoname<NULL>Passwort
Kontoname sollte bei dir gleich dem Benutzernamen sein.
Bei mir wird somit bei dem User "simon" und dem Passwort "mein_passwort" folgendes:

Code:
$> telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 bk.it.cx ESMTP Postfix (Debian/GNU)
EHLO localhost
250-bk.it.cx
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN c2ltb24Ac2ltb24AbWVpbl9wYXNzd29ydCQ=
235 2.7.0 Authentication successful

Getestet mit einem aktuellen Postfix auf meinem Mailserver. Ach ja, weils mir grad einfällt... Mach mal an statt des "HELO" ein "EHLO", dann zeigt dir der Server an, welche Mechanismen zur Authentifizierung er unterstützt. Bei mir sind es die "PLAIN" und "LOGIN".

Gruß
BK
 
Zuletzt bearbeitet:
V

VScan

Ok, danke Bratkartoffel, für Deine Hilfe!


Die TelNet-Verbindung hab ich jetzt nicht getestet, da diese eigentlich nicht mehr für sowas verwendet wird...


Nachdem ich nochmals laut Deiner Anweisung die Authentifizierungsmöglichkeiten mit EHLO abgefragt hatte und AUTH PLAIN LOGIN unter anderem mit dabei war, hab ichs nochmals mit PLAIN probiert und der Parameterliste wie von Dir beschrieben, Ergebnis war eine Fehlermeldung mit "BAD Protocol".


Schluss und endlich ist mein Email-Provider mit den Einstellungen des Mailservers schuld, denn bei anderen Anbietern funktioniert die Authentifizierung auch mit selbigem Code.

Ich denke, dass der Reverse-DNS-Eintrag nicht richtig gesetzt wurde, denn teilweise bekomme ich folgende Fehlermeldung:

"e.Error = {"Postfach nicht verfügbar. Die Serverantwort war: 5.7.1 <*******@******.net>: Recipient address rejected: Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs; MTA helo: vscan..."


wie gesagt, bei anderen Anbietern funktioniert es ja auch :( muss ich halt wechseln



Trotzdem danke für Deine Hilfe

MfG