2017-04-13 7 views
0

多くのメッセージを送信する必要があります。node.jsリクエストモジュールで送信する

email.js

var request = require('request'); 

module.exports = function(subject, email){ 
    var message = ... ; 
    var options = { 
     method: 'POST', 
     url: 'https://api.emails.net.com/api/sendmail', 
     form: { 
      smtp_account: smtp, 
      to: {}, 
      subject: subject, 
      html: message, 
      from: '[email protected]', 
      from_name: 'Myapp' 
     }, 
     headers: { 
      'Authorization': ' ... ' 
     } 
    }; 

    request(options, function (error, response) { 
     if (!error && response.statusCode === 200) return true; 
     return false; 
    }); 
}; 

、別の場所で::

var sendEmail = require('../email'); 

... 

for(...){ 
    if(sendEmail(subject, email)){ 
     //do something 
    } 
} 

成功の後、私は、要求リターンは何もなく、何かをしたい私は、外部APIと要求モジュールを使用します。投稿が成功したかどうかをチェックし、電子メールモジュールが必要な場所で何かを行う方法はありますか?私はループで電子メールを送信しています。私は1つずつチェックしなければなりません。

答えて

1

あなたはこの

var request = require('request'); 
var Promise = require('bluebird'); 

var email = function() { 
    return { 
     send: function (subject, email) { 
      var message = "test"; 
      var options = { 
       method: 'POST', 
       url: 'https://api.emails.net.com/api/sendmail', 
       form: { 
        smtp_account: "smtp", 
        to: {}, 
        subject: subject, 
        html: message, 
        from: '[email protected]', 
        from_name: 'Myapp' 
       }, 
       headers: { 
        'Authorization': "" 
       } 
      }; 
      return new Promise(function (resolve, reject) { 
       request(options, function (error, response) { 

        if (!error && response.statusCode === 200) { 
         resolve(true); 
        } else { 
         reject(err); 
        } 
       }); 
      }) 
     } 
    } 
}; 

module.exports = email(); 

ような何かを行うことができますし、それは、おかげでたくさんの作品

for (var i = 0; i < 10; i++) { 
      console.log(i); 
    email 
     .send("test", "[email protected]") 
     .then(function (status) { 
      ///Do what ever u want to do 
     }) 
     .catch(function (err) { 
      console.log(err); 
     }); 

} 
+0

以下のように、あなたはこれを消費することができます! – mcek

関連する問題