खोज…


परिचय

यह सेवा उपयोगकर्ताओं को ईमेल की सामग्री पर पूर्ण नियंत्रण के साथ ईमेल भेजने की अनुमति देती है। GmailApp के विपरीत, MailApp का एकमात्र उद्देश्य ईमेल भेजना है। MailApp उपयोगकर्ता के Gmail इनबॉक्स तक नहीं पहुंच सकता है।

GmailApp का उपयोग करके लिखी गई लिपियों में परिवर्तन मेलएपी स्क्रिप्ट की तुलना में उपयोगकर्ता से एक पुन: प्राधिकरण अनुरोध को ट्रिगर करने की अधिक संभावना है।

एक मूल MailApp उदाहरण

MailApp Google ऐप स्क्रिप्ट से एपी है जिसका उपयोग मेल भेजने के लिए किया जा सकता है

function sendEmails() {

  var subject = "A subject for your new app!";
  var message = "And this is the very first message"
  var recipientEmail = "[email protected]";

  MailApp.sendEmail(recipientEmail, subject, message);
}  

MailApp क्लास आपके Google खाते के आधार पर कोटा तक सीमित है:

  • उपभोक्ता उपयोगकर्ता (यानी, व्यक्तिगत जीमेल खाता): 100 प्राप्तकर्ता / दिन
  • Google Apps (विरासत) ग्राहक: 100 प्राप्तकर्ता / दिन
  • जीसुइट (मूल / गॉव / एडू / व्यवसाय): 1500 प्राप्तकर्ता / दिन

आप MailApp भीतर अपना ईमेल कोटा चेक कर सकते हैं

function checkQuota() {
  Logger.log(MailApp.getRemainingDailyQuota());
}

शीट से डेटा एक्सेस करें

function getSheetData() {

  var sheet = SpreadsheetApp.getActiveSheet();

  var startRow = 2;  // First row of data to process
  var numRows = 100;   // Number of rows to process
  var startCol = 1;  //First column of data to process
  var numCols = 15;    // Number of columns to process 
  
  var dataRange = sheet.getRange(startRow, startCol, numRows, numCols);

  // Fetch values for each row in the Range.
  var data = dataRange.getValues();  

  return data;  
}

आप शीट में मौजूद सामग्री से डेटा रेंज को गतिशील प्राप्त करने के लिए उपरोक्त फ़ंक्शन को भी संशोधित कर सकते हैं:

function getDataSheet() {

  sheet = SpreadsheetApp.getActiveSheet();
   
   //Get data range based on content
  var dataRange = sheet.getDataRange();

  // Fetch values for each row in the Range.
  var data = dataRange.getValues();  

  return data;  
}

ईमेल भेजने के लिए शीट डेटा का उपयोग करें

दिए गए - कर्मचारियों की एक शीट है, जिन्होंने प्रतिपूर्ति के लिए अनुरोध किया है।

आवश्यकता - हमें कर्मचारी को एक ईमेल भेजा जाना चाहिए जब उनकी प्रतिपूर्ति की प्रक्रिया हो

तो, शीट इस प्रकार है:

नाम | ईमेल पता | प्रतिपूर्ति राशि | क्या प्रतिपूर्ति प्रक्रिया है | ईमेल भेजा

ईमेल भेजने का कार्य निम्नानुसार है:

function getDataSheet() {

  sheet = SpreadsheetApp.getActiveSheet();

  startRow = 2;  // First row of data to process
  numRows = 100;   // Number of rows to process
  startCol = 1;  //First column of data to process
  numCols = 15;    // Number of columns to process 
  
  var dataRange = sheet.getRange(startRow, startCol, numRows, numCols);

  // Fetch values for each row in the Range.
  var data = dataRange.getValues();  

  return data;  
}    

function getMessage(name, amount) {
  return "Hello " + name + ", Your reimbursement for amount " + amount + " is processed successfully";
}

function sendEmail() {
  
  var emailSent = "Yes";
  var reimbursed = "Yes";
  var emailCol = 5;
      
  var data = getDataSheet();
  
  for (var i = 0; i < data.length; i++) {
    
    var row = data[i];
    
    var isReimbursed = row[3];
    var isEmailSent = row[4];
    var name = row[0];
    var amount = row[2];
    
    if(isReimbursed == reimbursed && isEmailSent != emailSent) {
      
      var subject = "Reimbursement details";
      var message = getMessage(name, amount);
      
      var recipientEmail = row[1];
      
      MailApp.sendEmail(recipientEmail, subject, message);
      
      //Sheet range starts from index 1 and data range starts from index 0
      sheet.getRange(1 + i, emailCol).setValue(emailSent);
    }
  }
}

रमेश के लिए ईमेल भेजा गया है

मेल में HTML सामग्री भेजना

उपरोक्त उदाहरण में, यदि हम ईमेल में संदेश के रूप में HTML सामग्री बाहर भेजना चाहते हैं, तो फ़ाइल -> नई -> HTML फ़ाइल पर जाकर एक HTML फ़ाइल बनाएँ

अब आप अपनी gs फ़ाइल के अलावा एक HTML फ़ाइल देख सकते हैं:

यहाँ छवि विवरण दर्ज करें

अब, getMessage () विधि को उपरोक्त उदाहरण से अपडेट करें:

function getMessage(name, amount) {
  var htmlOutput = HtmlService.createHtmlOutputFromFile('Message'); // Message is the name of the HTML file
  
  var message = htmlOutput.getContent()
  message = message.replace("%name", name);
  message = message.replace("%amount", amount);
  
  return message;
}

MailApp एपीआई के लिए कॉल के रूप में अच्छी तरह से बदलने की जरूरत है

MailApp.sendEmail(recipientEmail, subject, message, {htmlBody : message});

तो पूरा कोड इस प्रकार होगा:

function getDataSheet() {

  sheet = SpreadsheetApp.getActiveSheet();

  startRow = 2;  // First row of data to process
  numRows = 100;   // Number of rows to process
  startCol = 1;  //First column of data to process
  numCols = 15;    // Number of columns to process 
  
  var dataRange = sheet.getRange(startRow, startCol, numRows, numCols);

  // Fetch values for each row in the Range.
  var data = dataRange.getValues();  

  return data;  
}

function getMessage(name, amount) {
  var htmlOutput = HtmlService.createHtmlOutputFromFile('Message');
  
  var message = htmlOutput.getContent()
  message = message.replace("%name", name);
  message = message.replace("%amount", amount);
  
  return message;
}

function sendEmail() {
  
  var emailSent = "Yes";
  var reimbursed = "Yes";
  var emailCol = 5;
      
  var data = getDataSheet();
  
  for (var i = 0; i < data.length; i++) {
    
    var row = data[i];
    
    var isReimbursed = row[3];
    var isEmailSent = row[4];
    var name = row[0];
    var amount = row[2];
    
    if(isReimbursed == reimbursed && isEmailSent != emailSent) {
      
      var subject = "Reimbursement details";
      var message = getMessage(name, amount);
      
      var recipientEmail = row[1];
      
      MailApp.sendEmail(recipientEmail, subject, message, {htmlBody : message});
      
      sheet.getRange(startRow + i, emailCol).setValue(emailSent);
    }
  }
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow