Connect Gmail
Gmail uses OAuth through a small app you register in your own Google Cloud project (see BYOC, explained for why). This takes about five minutes, once.
1. Create a Google Cloud project
- Go to Google Cloud Console and sign in with the Google account you want to send from (or any account — the project owner doesn't have to be the sending inbox)
- Click the project dropdown at the top → New Project
- Give it any name (e.g. "SubsiMail") and create it
2. Configure the OAuth consent screen
- In the left sidebar: APIs & Services → OAuth consent screen
- Choose External user type, fill in the required app name/support email fields
- Leave publishing status as Testing — do not click "Publish App"
- Under Test users, add the Gmail address you're going to connect
Staying in Testing mode is deliberate, not a shortcut. Google's strict app-review process (CASA) only applies to Published apps. A Testing-mode app with test users added works indefinitely for those users without ever needing review — exactly the BYOC model this is built around.
3. Create OAuth credentials
- APIs & Services → Credentials → Create Credentials → OAuth client ID
- Application type: Web application
- Under Authorized redirect URIs, add:
(use your actual SubsiMail domain, matching what's in your license)
https://your-domain.com/oauth/google/callback - Create it, then copy the Client ID and Client secret shown
4. Enable the Gmail API
- APIs & Services → Library, search for Gmail API, and click Enable
Skipping this step is the single most common way this breaks. If you connect successfully but sending fails with accessNotConfigured or SERVICE_DISABLED, this is the fix — see Gmail OAuth errors.
5. Connect in SubsiMail
- In SubsiMail, go to Accounts
- Under Google / Gmail, paste your Client ID and Client Secret and save
- Click Connect Gmail account — you'll be sent to Google's consent screen, then back to SubsiMail once approved
SubsiMail requests three scopes: reading your email address (to identify the inbox), sending mail, and read-only inbox access (used only for stop-on-reply detection).