উন্নত জিমেইল সার্ভিস

অ্যাডভান্সড জিমেইল সার্ভিস আপনাকে Apps স্ক্রিপ্টে Gmail API ব্যবহার করতে দেয়। অনেকটা Apps Script-এর অন্তর্নির্মিত Gmail পরিষেবার মতো, এই API স্ক্রিপ্টগুলিকে একটি Gmail মেলবক্সে থ্রেড, বার্তা এবং লেবেলগুলি খুঁজে পেতে এবং সংশোধন করতে দেয়৷ বেশিরভাগ ক্ষেত্রে, অন্তর্নির্মিত পরিষেবাটি ব্যবহার করা সহজ, তবে এই উন্নত পরিষেবাটি কয়েকটি অতিরিক্ত বৈশিষ্ট্য এবং Gmail সামগ্রী সম্পর্কে আরও বিশদ তথ্যে অ্যাক্সেস সরবরাহ করে।

রেফারেন্স

এই পরিষেবার বিস্তারিত তথ্যের জন্য, Gmail API-এর জন্য রেফারেন্স ডকুমেন্টেশন দেখুন। Apps Script-এর সমস্ত উন্নত পরিষেবাগুলির মতো, উন্নত Gmail পরিষেবা সর্বজনীন API হিসাবে একই বস্তু, পদ্ধতি এবং প্যারামিটার ব্যবহার করে৷ আরও তথ্যের জন্য, দেখুন কিভাবে পদ্ধতি স্বাক্ষর নির্ধারণ করা হয়

সমস্যাগুলি রিপোর্ট করতে এবং অন্যান্য সমর্থন খুঁজতে, Gmail সমর্থন নির্দেশিকা দেখুন।

নমুনা কোড

নীচের নমুনা কোডটি API-এর সংস্করণ 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);
  }
}

বার্তা তালিকাভুক্ত করুন

নিচের উদাহরণটি দেখায় কিভাবে জিমেইল ব্যবহারকারীর অপঠিত বার্তা তালিকাভুক্ত করা যায়।

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}`);
  }
}
,

অ্যাডভান্সড জিমেইল সার্ভিস আপনাকে Apps স্ক্রিপ্টে Gmail API ব্যবহার করতে দেয়। অনেকটা Apps Script-এর অন্তর্নির্মিত Gmail পরিষেবার মতো, এই API স্ক্রিপ্টগুলিকে একটি Gmail মেলবক্সে থ্রেড, বার্তা এবং লেবেলগুলি খুঁজে পেতে এবং সংশোধন করতে দেয়৷ বেশিরভাগ ক্ষেত্রে, অন্তর্নির্মিত পরিষেবাটি ব্যবহার করা সহজ, তবে এই উন্নত পরিষেবাটি কয়েকটি অতিরিক্ত বৈশিষ্ট্য এবং Gmail সামগ্রী সম্পর্কে আরও বিশদ তথ্যে অ্যাক্সেস সরবরাহ করে।

রেফারেন্স

এই পরিষেবার বিস্তারিত তথ্যের জন্য, Gmail API-এর জন্য রেফারেন্স ডকুমেন্টেশন দেখুন। Apps Script-এর সমস্ত উন্নত পরিষেবাগুলির মতো, উন্নত Gmail পরিষেবা সর্বজনীন API হিসাবে একই বস্তু, পদ্ধতি এবং প্যারামিটার ব্যবহার করে৷ আরও তথ্যের জন্য, দেখুন কিভাবে পদ্ধতি স্বাক্ষর নির্ধারণ করা হয়

সমস্যাগুলি রিপোর্ট করতে এবং অন্যান্য সমর্থন খুঁজতে, Gmail সমর্থন নির্দেশিকা দেখুন।

নমুনা কোড

নীচের নমুনা কোডটি API-এর সংস্করণ 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);
  }
}

বার্তা তালিকাভুক্ত করুন

নিচের উদাহরণটি দেখায় কিভাবে জিমেইল ব্যবহারকারীর অপঠিত বার্তা তালিকাভুক্ত করা যায়।

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}`);
  }
}