web-dev-qa-db-ja.com

Nodemailerを使用してOutlook.com SMTPに接続できない

このようなトランスポートオブジェクトを作成しています。

var transport = nodemailer.createTransport("SMTP", {
        Host: "smtp-mail.Outlook.com", // hostname
        secureConnection: false, // use SSL
        port: 587, // port for secure SMTP
        auth: {
            user: "[email protected]",
            pass: "password"
        }
    });

これは、メールを送信しようとしたときに発生するエラーです。

[エラー:139668100495168:エラー:1408F10B:SSLルーチン:SSL3_GET_RECORD:間違ったバージョン番号:../ deps/openssl/openssl/ssl/s3_pkt.c:337:]

IgnoreTLSをtrueに設定しようとしたとき。これは私が得ているものです

{[AuthError:無効なログイン-530 5.7.0最初にSTARTTLSコマンドを発行する必要があります]名前: 'AuthError'、データ: '530 5.7.0最初にSTARTTLSコマンドを発行する必要があります'}

私は何か間違ったことをしていますか?助けてください。

16
Jeevan

偶然出会うまで同じ問題が発生していました https://github.com/andris9/Nodemailer/issues/165

SSLv3を使用するには、tls暗号オプションを追加してみてください。

var transport = nodemailer.createTransport("SMTP", {
    Host: "smtp-mail.Outlook.com", // hostname
    secureConnection: false, // TLS requires secureConnection to be false
    port: 587, // port for secure SMTP
    auth: {
        user: "[email protected]",
        pass: "password"
    },
    tls: {
        ciphers:'SSLv3'
    }
});

または、hotmail/live/Outlookの場合は、単純に使用できます

var transport = nodemailer.createTransport("SMTP", {
    service: "hotmail",
    auth: {
        user: "[email protected]",
        pass: "password"
    }
});
29
Ray L

Nodemailer 1.x以降を使用している場合は、以下を使用できます。

var transporter = nodemailer.createTransport('smtp://username%40Outlook.com:[email protected]');
0
Richie_b