سرویس پیشرفته جیمیل

سرویس Advanced Gmail به شما امکان می دهد از Gmail API در Apps Script استفاده کنید. بسیار شبیه به سرویس داخلی Gmail Apps Script، این API به اسکریپت‌ها اجازه می‌دهد تا رشته‌ها، پیام‌ها و برچسب‌ها را در صندوق پستی Gmail پیدا و تغییر دهند. در بیشتر موارد، استفاده از سرویس داخلی آسان تر است، اما این سرویس پیشرفته چند ویژگی اضافی و دسترسی به اطلاعات دقیق تر در مورد محتوای Gmail را فراهم می کند.

مرجع

برای اطلاعات دقیق در مورد این سرویس، به مستندات مرجع برای Gmail API مراجعه کنید. مانند همه سرویس‌های پیشرفته در Apps Script، سرویس پیشرفته Gmail از همان اشیا، روش‌ها و پارامترهای API عمومی استفاده می‌کند. برای اطلاعات بیشتر، نحوه تعیین امضای روش را ببینید.

برای گزارش مشکلات و یافتن پشتیبانی دیگر، راهنمای پشتیبانی Gmail را ببینید.

کد نمونه

کد نمونه زیر از نسخه 1 API استفاده می کند.

لیست اطلاعات برچسب

مثال زیر نحوه فهرست کردن تمام اطلاعات برچسب کاربر را نشان می دهد. این شامل نام برچسب، نوع، شناسه و تنظیمات دید است.

/**
 * 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);
  }
}

فهرست قطعات صندوق ورودی

مثال زیر نحوه فهرست کردن تکه‌های متن مرتبط با هر رشته را در صندوق ورودی کاربر نشان می‌دهد. به استفاده از نشانه های صفحه برای دسترسی به لیست کامل نتایج توجه کنید.

/**
 * 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);
  }
}

تاریخ اخیر را فهرست کنید

مثال زیر نحوه ثبت سابقه فعالیت اخیر را نشان می دهد. به طور خاص، این مثال شناسه سابقه سابقه مرتبط با آخرین پیام ارسال شده کاربر را بازیابی می کند و سپس شناسه پیام هر پیامی را که از آن زمان تغییر کرده است، ثبت می کند. هر پیام تغییر یافته فقط یک بار ثبت می شود، مهم نیست که چه تعداد رویداد تغییر در سوابق تاریخ وجود دارد. به استفاده از نشانه های صفحه برای دسترسی به لیست کامل نتایج توجه کنید.

/**
 * 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);
  }
}