Advertisement
Guest User

helper

a guest
Aug 28th, 2018
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var MailListener = require("mail-listener2");
  2. var nodemailer = require("nodemailer");
  3. /**
  4.  * Mail helper object.
  5.  * @constructor
  6.  */
  7. var MailHelper = function() {
  8.  
  9.     this.mailListenerStart = function (emailSubject) {
  10.         var searchCriteria = ['ALL', ['TEXT', emailSubject]];
  11.  
  12.         var mailListener = new MailListener({
  13.             username: "qa.ddi.mail@gmail.com",
  14.             password: "dkccaakxhikbpqbc",
  15.             host: "imap.gmail.com",
  16.             port: 993, // imap port
  17.             tls: true,
  18.             mailbox: "INBOX", // mailbox to monitor
  19.             searchFilter: searchCriteria,
  20.             markSeen: true, // all fetched email willbe marked as seen and not fetched next time
  21.             fetchUnreadOnStart: false // use it only if you want to get all unread email on lib start. Default is `false`,
  22.         });
  23.  
  24.     mailListener.on("server:connected", function () {
  25.         console.log("imapConnected");
  26.     });
  27.  
  28.     mailListener.on("server:disconnected", function () {
  29.         console.log("imapDisconnected");
  30.     });
  31.  
  32.     (function () {
  33.         var count = 0;
  34.         mailListener.on("mail", function (mail, seqno, attributes) {
  35.             var mailuid = attributes.uid,
  36.                 i = ++count;
  37.  
  38.             mailListener.imap.addFlags('1:*', '\\Deleted', function (err) {
  39.                 if (err) {
  40.                     console.log('error marking ALL messages as DELETED');
  41.                     return;
  42.                 }
  43.             });
  44.  
  45.             if (i > 20) {
  46.                 mailListener.stop(); // start listening
  47.                 return;
  48.             }
  49.             mailListener.imap.addFlags(mailuid, '\\Deleted', function (err) {
  50.                 if (err) {
  51.                     console.log('error marking message as DELETED');
  52.                     return;
  53.                 }
  54.             });
  55.         });
  56.     })();
  57.  
  58.         mailListener.start(); // start listening
  59.         global.mailListener =  mailListener;
  60.  
  61.         setTimeout(function () {
  62.             mailListener.stop(); // stop listening
  63.         }, 120 * 1000);
  64.     };
  65.  
  66.     this.getLastEmail = function () {
  67.         var deferred = protractor.promise.defer();
  68.         mailListener.on("mail", function(mail){
  69.             deferred.fulfill(mail);
  70.         });
  71.         return deferred.promise;
  72.     };
  73.  
  74.     /**
  75.      * Sending message about error
  76.      *
  77.      */
  78.  
  79.     this.sendEmail = function (subject, text, html) {
  80.         var mailTo = process.env.MAIL_TO;
  81.         // var mailTo = 'nikolay.ponorets@gmail.com';
  82.         var transporter = nodemailer.createTransport({
  83.             service: 'gmail',
  84.             auth: {
  85.                 user: "qa.ddi.mail@gmail.com",
  86.                 pass: "dkccaakxhikbpqbc"
  87.  
  88.                 // user: "dditestuser@gmail.com",
  89.                 // pass: "ddipass2017"
  90.             }
  91.         });
  92.  
  93.         var mailOptions = {
  94.             from: "qa.ddi.mail@gmail.com", // sender address
  95.             // from: "dditestuser@gmail.com", // sender address
  96.             to: mailTo,
  97.             subject: subject, // Subject line
  98.             text: text, // plaintext body
  99.             html: html // html body
  100.         };
  101.  
  102.         transporter.sendMail(mailOptions, function (error, response) {
  103.             if (error) {
  104.                 console.log(error);
  105.             } else {
  106.                 console.log("Message sent: " + response.message);
  107.             }
  108.  
  109.             transporter.close();
  110.         });
  111.         return true;
  112.     };
  113. };
  114.  
  115. module.exports = new MailHelper();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement