Advertisement
Guest User

Untitled

a guest
Jul 16th, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function forwardMail() {
  2.     let data = SpreadsheetApp.getActiveSheet().getRange("A2:B11").getValues();
  3.     const forward = (message, email) => {
  4.         return new Promise(resolve => {
  5.             setTimeout(() => {
  6.                 let subject = message.getSubject();
  7.                 message.forward(email, { subject: subject });
  8.             }, 0);
  9.         });
  10.     };
  11.     const processMessages = (thread, email, label) => {
  12.         let p = Promise.resolve();
  13.         let messages = thread.getMessages();
  14.         for (let y in messages) {
  15.             p = p.then(() => forward(messages[y], email));
  16.         }
  17.         return p.then(() => thread.removeLabel(label));
  18.     };
  19.     const processRow = row => {
  20.         let name = row[0].toString();
  21.         let email = row[1].toString();
  22.         let label = GmailApp.getUserLabelByName(name);
  23.         if (label && email != "") {
  24.             let threads = label.getThreads();
  25.             let p = Promise.resolve();
  26.             for (let x in threads) {
  27.                 p = p.then(() => processMessages(threads[x], email, label));
  28.             }
  29.             return p;
  30.         }
  31.     };
  32.     let p = Promise.resolve();
  33.     for (let i in data) {
  34.         p = p.then(() => processRow(data[i]));
  35.     }
  36.     p.then(() => {
  37.         console.log('done');
  38.     });
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement