2017-06-28 30 views
0

を使用して電子メールを送信している間、私は、電子メールを送信するため、このスクリプトを使用しています:未処理の約束拒否ノードJS

var mailer = require('nodemailer'); 

var smtpTransport = mailer.createTransport({ 
    service: 'gmail', 
    auth: { 
     user: 'user', 
     pass: 'pass' 
    } 
}); 

smtpTransport.sendMail({  
     sender: 'user', 
     to: 'user', 
     subject: 'Attachment!', 
     body: 'mail content...', 
     attachments: [{ 
     filename: 'text3.txt', 
     path: 'pat/to/file.txt' 
    }] 
    }), function(err, success) { 
     if (err) { 
     } 

    } 

しかし、私はこのエラーを取得しています:

Unhandled promise rejection (rejection id: 9): Error: connect ETIMEDOUT

間違って何?事前

答えて

4

未処理の約束拒絶において

おかげで.catchを持っていないいくつかの約束機能があることを意味します。 Nodemailerの.sendMail関数はPromise関数なので、コールバックを持つかPromiseのように使うことができます。

fuction(err、sucess)が.sendMail関数の外にあります。ここでは、それを修正することができる方法である:https//www.google.com/setti ngs/security/lesssecureappsと「安全性の低いアプリのためアクセス」をオンにする:

smtpTransport.sendMail({  
    sender: 'user', 
    to: 'user', 
    subject: 'Attachment!', 
    body: 'mail content...', 
    attachments: [{ 
    filename: 'text3.txt', 
    path: 'pat/to/file.txt' 
}] 
},(err, success) => { 
    if (err) { 
    } 
}); 
0

たぶんGmailから拒否され、にログインしてみます。 またはOAuthを使用してください。

2

まず、間違っているのは、あなたのEメールがEメールで来ているということです。あなたはすべてのパラメータが正しいと確信していますか?

第2に、コールバックスタイルではなく約束を使用し、拒否をキャッチします。このように、

smtpTransport 
    .sendMail(...) 
    .then(success => console.log('success: ', success)) 
    .catch(error => console.log('error: ', error)) 
関連する問題