Gmail की बेहतर सेवा

Gmail की ऐडवांस सेवा की मदद से, Apps Script में Gmail API का इस्तेमाल किया जा सकता है. Apps Script की पहले से मौजूद Gmail सेवा की तरह ही, इस एपीआई की मदद से स्क्रिप्ट, Gmail मेलबॉक्स में थ्रेड, मैसेज, और लेबल ढूंढ सकती हैं और उनमें बदलाव कर सकती हैं. ज़्यादातर मामलों में, पहले से मौजूद सेवा का इस्तेमाल करना आसान होता है. हालांकि, बेहतर सेवा में कुछ अतिरिक्त सुविधाएं मिलती हैं. साथ ही, Gmail कॉन्टेंट के बारे में ज़्यादा जानकारी का ऐक्सेस भी मिलता है.

रेफ़रंस

इस सेवा के बारे में ज़्यादा जानकारी के लिए, Gmail API के रेफ़रंस दस्तावेज़ देखें. Apps Script की सभी ऐडवांस सेवाओं की तरह, Gmail की ऐडवांस सेवा भी पब्लिक एपीआई के जैसे ही ऑब्जेक्ट, तरीकों, और पैरामीटर का इस्तेमाल करती है. ज़्यादा जानकारी के लिए, मेथड सिग्नेचर तय करने का तरीका लेख पढ़ें.

समस्याओं की शिकायत करने और अन्य सहायता पाने के लिए, Gmail की सहायता गाइड देखें.

नमूना कोड

यहां दिए गए सैंपल कोड में, एपीआई के वर्शन 1 का इस्तेमाल किया गया है.

लेबल की जानकारी

यहां दिए गए उदाहरण में, उपयोगकर्ता के लेबल की पूरी जानकारी को सूची में शामिल करने का तरीका बताया गया है. इसमें लेबल का नाम, टाइप, आईडी, और दिखने की सेटिंग शामिल हैं.

advanced/gmail.gs
/**
 * Lists the user's labels, including name, type,
 * ID and visibility information.
 */
function listLabelInfo() {
  try {
    const response =
      Gmail.Users.Labels.list('me');
    for (let i = 0; i < response.labels.length; i++) {
      const label = response.labels[i];
      console.log(JSON.stringify(label));
    }
  } catch (err) {
    console.log(err);
  }
}

इनबॉक्स के स्निपेट की सूची

इस उदाहरण में, उपयोगकर्ता के इनबॉक्स में हर थ्रेड से जुड़े टेक्स्ट स्निपेट की सूची बनाने का तरीका बताया गया है. नतीजों की पूरी सूची ऐक्सेस करने के लिए, पेज टोकन के इस्तेमाल पर ध्यान दें.

advanced/gmail.gs
/**
 * Lists, for each thread in the user's Inbox, a
 * snippet associated with that thread.
 */
function listInboxSnippets() {
  try {
    let pageToken;
    do {
      const threadList = Gmail.Users.Threads.list('me', {
        q: 'label:inbox',
        pageToken: pageToken
      });
      if (threadList.threads && threadList.threads.length > 0) {
        threadList.threads.forEach(function (thread) {
          console.log('Snippet: %s', thread.snippet);
        });
      }
      pageToken = threadList.nextPageToken;
    } while (pageToken);
  } catch (err) {
    console.log(err);
  }
}

हाल ही के इतिहास की सूची

यहां दिए गए उदाहरण में, हाल ही की गतिविधि का इतिहास लॉग करने का तरीका बताया गया है. खास तौर पर, यह उदाहरण उपयोगकर्ता के हाल ही में भेजे गए मैसेज से जुड़े इतिहास रिकॉर्ड आईडी को वापस लाता है. इसके बाद, उस समय से बदले गए हर मैसेज के आईडी को लॉग करता है. बदले गए हर मैसेज को सिर्फ़ एक बार लॉग किया जाता है. भले ही, इतिहास के रिकॉर्ड में बदलाव के कितने भी इवेंट हों. नतीजों की पूरी सूची ऐक्सेस करने के लिए, पेज टोकन के इस्तेमाल पर ध्यान दें.

advanced/gmail.gs
/**
 * Gets a history record ID associated with the most
 * recently sent message, then logs all the message IDs
 * that have changed since that message was sent.
 */
function logRecentHistory() {
  try {
    // Get the history ID associated with the most recent
    // sent message.
    const sent = Gmail.Users.Threads.list('me', {
      q: 'label:sent',
      maxResults: 1
    });
    if (!sent.threads || !sent.threads[0]) {
      console.log('No sent threads found.');
      return;
    }
    const historyId = sent.threads[0].historyId;

    // Log the ID of each message changed since the most
    // recent message was sent.
    let pageToken;
    const changed = [];
    do {
      const recordList = Gmail.Users.History.list('me', {
        startHistoryId: historyId,
        pageToken: pageToken
      });
      const history = recordList.history;
      if (history && history.length > 0) {
        history.forEach(function (record) {
          record.messages.forEach(function (message) {
            if (changed.indexOf(message.id) === -1) {
              changed.push(message.id);
            }
          });
        });
      }
      pageToken = recordList.nextPageToken;
    } while (pageToken);

    changed.forEach(function (id) {
      console.log('Message Changed: %s', id);
    });
  } catch (err) {
    console.log(err);
  }
}

मैसेज की सूची

नीचे दिए गए उदाहरण में, Gmail उपयोगकर्ता के ऐसे मैसेज की सूची बनाने का तरीका बताया गया है जिन्हें उन्होंने नहीं पढ़ा है.

advanced/gmail.gs
/**
 * Lists unread messages in the user's inbox using the advanced Gmail service.
 */
function listMessages() {
  // The special value 'me' indicates the authenticated user.
  const userId = 'me';

  // Define optional parameters for the request.
  const options = {
    maxResults: 10, // Limit the number of messages returned.
    q: 'is:unread', // Search for unread messages.
  };

  try {
    // Call the Gmail.Users.Messages.list method.
    const response = Gmail.Users.Messages.list(userId, options);
    const messages = response.messages;
    console.log('Unread Messages:');

    for (const message of messages) {
      console.log(`- Message ID: ${message.id}`);
    }
  } catch (err) {
    // Log any errors to the Apps Script execution log.
    console.log(`Failed with error: ${err.message}`);
  }
}