Generating URLs to a Gmail compose window

I wanted to send out a small batch of follow-up emails for workshop attendees today, and I realized that since I have their emails in a database table I might be able to semi-automate the process.

I guessed that Gmail might have a way to generate a querystring URL to the compose interface such that the to/subject/body fields were filled out for me.

I ran prompts through ChatGPT, Claude and Google Gemini - in my experience LLMs often know about undocumented URL patterns like this.

The answer I got back turned out to work, but was out-of-date (it redirected to something different). Here's what I figured out as the current correct format:,

Or more clearly formatted:

The tf=cm parameter at the end is the one that navigates to a compose window.

The query string parameters are:

What this gets you

Screenshot of a Gmail compose window. The To, CC, BCC, Subject and Body are filled out as requested in the URL.

Tip about the /u/0/ bit

Tip from Corentin Smith:

You can replace the /u/0/ with /u/, it will redirect you to the correct account

It doesn't work on Mobile Web

Frustratingly, attempting to click one of these links in Mobile Safari takes you to the Gmail inbox but does not open a compose window. I don't know if there's a workaround for that.

The answer from Gemini

My prompt was:

I would like to build an application that helps me send out emails by constructing URLs to the Gmail interface in the way that will pre-fill the to and cc and subject and body fields for me

Show me an example URL like that and then give me a table, documenting all of the query string parameters that I need to know

Google Gemini gave me this example:

Following that link redirected to almost the example I provided above.

Gemini also gave me this table:

Parameter Description Example
view Required. Sets the view mode to compose (cm) view=cm
fs Required. Fullscreen mode (1 for on, 0 off) fs=1
to The recipient's email address
cc Email address(es) to CC (separate by commas)
bcc Email address(es) to BCC (separate by commas)
su The email subject (URL Encoded) su=Email%20Subject
body The email body (URL Encoded) body=Hello%20There

That's not entirely correct -the fs=0/1 option no longer does anything, and I found that view=cm should be replaced by tf=cm.

Created 2024-03-12T20:41:14-07:00, updated 2024-03-13T12:57:38-07:00 · History · Edit