SMTP über Exchange Integrierte Windows-Authentifizierung (NTLM) verwenden Python
Ich wollen, verwenden Sie die Anmeldeinformationen des angemeldeten Windows-Benutzer zu authentifizieren, die eine SMTP-Verbindung zu einem Exchange-server mithilfe von NTLM.
Ich bin mir bewusst, dass der python-ntlm Modul und die zwei patches, die es ermöglichen, die NTLM-Authentifizierung für SMTP, jedoch möchte ich die Verwendung des aktuellen Benutzers Sicherheits-token und nicht zu liefern haben, einen Benutzernamen und ein Passwort.
Sehr ähnliches problem,Windows-Authentifizierung mit Python und urllib2.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl die Lösung unten, nur benutzt die Python-Win32-Erweiterungen (die sspi-Beispiel-code enthalten, mit dem Python Win32 extensions war sehr hilfreich), die python-ntlm-IMAP & SMTP-patches erwähnt, in der Frage diente auch als nützliche guides.
sspi
?Super Antwort, aber als update für python 3.0+
Python 2.7.x nicht senden Sie die NTLM-Typ 3 Meldung durch die leere cmd angegeben:
code, response = smtp.docmd("", ntlm_message)
Endet dies senden Sie die richtige Antwort an den server zurück, aber es pre-pends ein Raum aufgrund der Natur des docmd - () Aufruf putcmd().
smtplib.py:
als Ergebnis dauert der Weg von der else-Bedingung, damit das senden
str(' ' + ntlm_message + CRLF)
die Ergebnisse in(501, 'Syntax error in parameters or arguments')
.Als solche die Lösung ist, einfach senden Sie die NTLM-Nachricht als cmd.
code, response = smtp.docmd(ntlm_message)
Update zu der oben genannten Antwort wurde übermittelt, aber wer weiß, Wann es überprüft wird/angenommen.