2016-04-13 17 views
2

Ich versuche, einen SMTP-Server mit AUTH NTLM-Typ zuzugreifen.Zugriff auf SMTP-Server mit AUTH NTLM von Node.js

Ich nodemailer und nodemailer-smtp-Verkehr als solche mit:

var config = require('./config.json'); 
var nodemailer = require('nodemailer'); 
var smtpTransport = require('nodemailer-smtp-transport'); 

var transporter = nodemailer.createTransport(smtpTransport({ 
    host : config.mailer.host, 
    port: config.mailer.port, 
    auth: { 
     user: config.mailer.username, 
     pass: config.mailer.password 
    }, 
    authMethod: 'PLAIN' 
})); 

Aber es funktioniert nicht. Der Fehler, den ich bekommen ist:

{ [Error: Invalid login: 504 5.7.4 Unrecognized authentication type] 
    code: 'EAUTH', 
    response: '504 5.7.4 Unrecognized authentication type', 
    responseCode: 504 } 

was Sinn macht, denn wenn ich in den SMTP-Server telnet

ehlo server.domain.net 
250-server.domin.net Hello [10.100.10.100] 
250-SIZE 
250-PIPELINING 
250-DSN 
250-ENHANCEDSTATUSCODES 
250-X-ANONYMOUSTLS 
250-AUTH NTLM 
250-X-EXPS GSSAPI NTLM 
250-8BITMIME 
250-BINARYMIME 
250-CHUNKING 
250-XEXCH50 
250 XRDST 

Und geben Sie

AUTH PLAIN 

I

bekommen
504 5.7.4 Unrecognized authentication type 

Aber innerhalb von Node, wenn ich die AuthMeth ändere od zu ‚NTLM‘, bekomme ich einen Fehler, der sagt

{ [Error: Unknown authentication method "NTLM"] code: 'EAUTH' } 

Ich bin, dass nodemailer Verdacht einfach nicht NTLM nicht unterstützt. Wenn dies der Fall ist, wie stelle ich eine Verbindung zu einem SMTP-Server her, der den NTLM-Authentifizierungstyp benötigt?

Danke

+1

https://github.com/nodemailer/nodemailer/issues/314 - es scheint, dass wir Pech haben - der letzte Kommentar zum Zeitpunkt des Schreibens stammt vom Betreuer: "Ich habe nichts gegen NTLM an sich. Ich habe nur keine Ahnung, wie ich es testen soll. Es scheint Microsoft-spezifisch zu sein und ich weiß nichts über Windows-basierte Systeme. " – Stevie

Antwort

2

Meine Firma lief vor ein paar Tagen in das gleiche Problem. Die Optionen, die wir in Betracht gezogen waren:

  1. der Exchange-Server admins Stellen Sie EBENE Auth unter STARTTLS ermöglichen (es sicher ist und scheint nur zu verwickeln ein paar Kästchen ankreuzen)
  2. ein lokales Relais (zB Postfix) einrichten dass Relais auf Exchange, und verwenden Sie den postfix-Relais von nodemailer
  3. Fork nodemailer und NTLM-Unterstützung

Leider hinzufügen schlagen wir politische Fragen zu den einfachen Optionen (1) und (2), hatte so Gabel nodemailer.

Ich habe noch keine Pull-Anfrage gesendet, aber die Gabel ist here. Für die Zeit der einfachste Weg, es zu benutzen, ist über npm durch direkt mit dem Github-Projekt in Ihrem Paket json Bezug genommen wird, zB:

"dependences": { 
    "nodemailer": "steveliles/nodemailer" 
} 

Wenn Sie daran interessiert sind, die meisten von der Änderung tatsächlich in einem sub- war Unterprojekt (smtp-connection), und die Gabeln von nodemailer, nodemailer-smtp-pool und nodemailer-smtp-transport sind nur notwendig, um meine smtp-Verbindungsgabel zum Abholen zu bekommen.

Wir mussten die NTLM protocol nicht implementieren, da SamDecrock's httpntlm bereits die harte Arbeit getan hat.

Es wurde nur über Exchange 2007 über TLS (mit STARTTLS) und keine Domäne oder Arbeitsstation getestet.

Wenn Sie Domain + Workstation in den Anmeldeinformationen benötigen, fügen Sie sie einfach zu options.auth von nodelailer hinzu und sie werden z.

var smtpConfig = { 
    host: 'ntlm.boo.hoo', 
    port: 25, 
    auth: { 
     domain: 'windows-domain', 
     workstation: 'windows-workstation', 
     user: '[email protected]', 
     pass: 'pass' 
    } 
}; 

Wir waren noch mehr Pech, dass in der Exchange-Server wir zu der Sie eine Verbindung nicht über ein gültiges SSL-Zertifikat haben, aber zum Glück nodemailer kann damit umgehen, indem tls: {rejectUnauthorized: false} in den Optionen einstellen.

+0

Pull-Request 46 bereits verschmolzen - sieht aus wie NTLM-Support wird bald im Haupt-Projekt von nodemailer verfügbar sein - https://github.com/nodemailer/smtp-connection/pull/46 – Stevie

Verwandte Themen