2016-04-13 9 views
2

AUTHタイプのNTLMを使用してSMTPサーバーにアクセスしようとしています。Node.jsからAUTH NTLMを使用してSMTPサーバーにアクセスする

私は、次のようなnodemailerとnodemailer-SMTP-トランスポートを使用しています:

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' 
})); 

しかし、それは動作しません。私が手にエラーがある:私は

AUTH PLAIN 

をSMTPサーバ

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 

にTelnetと入力した場合ので、理にかなって

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

は私が

504 5.7.4 Unrecognized authentication type 

を取得しますしかし、ノード内で、authMethを変更すると「NTLM」にODが、私はちょうどNTLMをサポートしていないことnodemailerを疑ってる

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

というエラーを取得します。その場合、NTLM認証タイプが必要なSMTPサーバーにどのように接続すればよいですか?

ありがとうございました

+1

https://github.com/nodemailer/nodemailer/issues/314 - これは運が悪いと思われます。書面での最後のコメントは、メンテナーからの言葉です。「私にはNTLM自体は何もありません。私はちょうどそれをテストするためのヒントを持っていないそれはマイクロソフト固有のようだと私はWindowsベースのシステムについては何も知らない " – Stevie

答えて

2

私の会社は数日前に同じ問題に遭遇しました。私たちが考えられたオプションは以下の通りであった。

  1. はローカルリレー(例えば接尾辞)を設定し(それが安全であるとのみ、チェックボックスのカップルを刻み含むと思われる)STARTTLS下PLAIN認証を有効にするには、Exchangeサーバーの管理者を依頼しますExchangeへのリレーは、とnodemailer
  2. フォークnodemailerからpostfixのリレーを使用し、NTLMのサポートを追加することを

は、残念ながら、私たちは簡単にオプション(1)及び(2)、そうnodemailerをフォークした上で、政治的な問題を打ちます。

まだプルリクエストを送信していませんが、フォークはhereです。それを使用する最も簡単な方法は、当分の間、あなたのパッケージJSONにgithubのプロジェクトに直接参照することにより、NPM経由で例えば:あなたが興味を持っている場合は、変更のほとんどがサブに実際にいた

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

サブプロジェクト(smtp-connection)、nodemailernodemailer-smtp-poolnodemailer-smtp-transportのフォークは、自分のsmtp接続フォークを取得するために必要です。

を実装する必要はありませんでした。既にSamDecrock's httpntlmが苦労しました。

TLS(STARTTLS)を使用し、ドメインまたはワークステーションを使用しないExchange 2007に対してのみテストされています。

資格情報にdomain + workstationが必要な場合は、nodemailerのoptions.authに追加してください。

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

私たちは、さらに多くの不運我々が接続しているExchangeサーバーが有効なSSL証明書を持っていませんが、幸運にもnodemailerはオプションでtls: {rejectUnauthorized: false}を設定することであることを扱うことができるようにしました。

+0

プル要求46はすでにマージされています - NTLMのサポートはかなり早くメインのnodemailerプロジェクトで利用できるように見える - https: /github.com/nodemailer/smtp-connection/pull/46 – Stevie

関連する問題