How To Obtain Permanent Email Message URL in Gmail using Apps Script

How To Obtain Permanent Email Message URL in Gmail using Apps Script

Of course, I’d be pleased to assist you with rewriting the material while making sure it is original, has a conversational tone, uses the active voice, has appropriate transitions, and adheres to SEO best practices. Here is the updated text:

Do you frequently have to search through your Gmail inbox for discussions that are important? What if I told you there was a simple method to bookmark and always have access to any email message? I’m going to reveal how to find the permanent web URL of any Gmail email message employing a quick method utilizing Google Apps Script.

The permanent web address contained in each email you receive in your Gmail inbox is a golden key. This URL may be stored in your bookmarks like a treasure map, making it simple to reconnect with important conversations. Think of these message connections as a convenient method to review key circumstances that are neatly preserved in your task list or meeting notes.

All of Gmail’s message URLs adhere to the same format:<<UserId>>/#label/<<Label>>/<<UniqueId>>

According to a breakdown, the UserId is the specific identification of your current Gmail account (the default value is 0), and the Label is the Gmail label that the message is associated with (you may also use the word “all” to include everything). The show-stopper is the UniqueId, an elusive fingerprint that Gmail alone assigns to each message. The magic can only be accessed with this UniqueId.

Let’s look at how to quickly and easily acquire these Gmail message URLs by utilizing the power of Google Apps Script.

It’s simple to send emails using Google Apps Script, and it has a handy ally in the form of a distinctive ID offered by the Gmail API. Your pass to following the breadcrumb trail to the email’s URL is this ID. Here’s a quick way to send a base64-encoded email:

const sendGmailMessage = (mimeText) => {
  const GMAIL_API = '';
  const params = {
    method: 'POST',
    contentType: 'message/rfc822',
    headers: {
      Authorization: `Bearer ${ScriptApp.getOAuthToken()}`,
    payload: mimeText,
  const response = UrlFetchApp.fetch(GMAIL_API, params);
  const { id: messageId } = JSON.parse(response.getContentText());
  return messageId;

Now that you have your email’s messageId, three exciting routes open up to you that lead to the coveted URL of your message. For a voyage into the email matrix, buckle up!

Use the standard URL format:

Use the powerful standard URL format to capture the permalink for your email:

const getEmailMessageUrl = (messageId) => {
  return `${messageId}`;

Use Apps Script to get the email thread URL:

A sorcerer’s trick kind of describes this technique. We decipher the mystery of the email thread before understanding the URL of the first message in the thread:

const getThreadUrl = (messageId) => {
  const message = GmailApp.getMessageById(messageId);
  return message.getThread().getPermalink();

Use the Message-Id in Email Header:

This diamond will leave you in awe. The strategy that is the most reliable uses the Message-Id that discreetly goes with your email. You have a special hidden search operator in Gmail called rfc822msgid:

const getMessageUrl = (messageId) => {
  const message = GmailApp.getMessageById(messageId);
  const rfc822Id = message.getHeader('Message-Id');
  const searchQuery = `rfc822msgid:<${rfc822Id}>`;
  return `${searchQuery}`;

You now possess the secret code needed to access Gmail’s secret cache of email links. Bid adieu to frenetic inbox searching and welcome to simple retrieval. These clever Apps Script techniques are right at your fingertips, making bookmarking and retrieving email messages easier than ever. Let Google Apps Script’s magic save your discussions so that they are always available.

Please feel free to edit and modify this material as necessary to suit your needs.

Leave a Comment