SendAs Relay

Security

Google's own warning about tools like this is fair: Exercise caution with these services, as they often require access to your email credentials or OAuth tokens. (Gmail Help 17101213). SendAs Relay needs your other address's SMTP password to send as it. This page says exactly where that password goes.

The short version

Where your passwords live

What Where Protection
SMTP passwords for your addresses, Gmail app password for Sent copies Extension storage in your browser profile (storage.local) Optional passphrase: AES-256-GCM, key from PBKDF2-SHA-256 with 600,000 rounds and a random salt
Unlocked key (only with a passphrase) Browser session memory (storage.session) Cleared when the browser closes, or after 15 minutes, 1 or 4 hours unused, as you choose
Addresses, server names, settings Extension storage Not secret; never leaves your browser except the server name and username sent with each message

The Gmail page never sees your passwords. The part of the extension that runs inside Gmail only knows your addresses. Passwords are read by the extension's background script, which is the only part that talks to the relay, and the passphrase is typed in an extension window, never on the Gmail page.

Without a passphrase, anyone who can use your browser profile, or malware on your computer, can read the stored passwords, as with passwords saved by any mail app. Set a passphrase if others use your computer.

What the relay does with a message

  1. Receives it over HTTPS from the extension, with the SMTP server name, port, username and password for that address.
  2. Connects to your provider with encryption: TLS on port 465, or STARTTLS on 587/2525. If the server doesn't offer STARTTLS, it stops before sending your password. It never uses plaintext or port 25.
  3. Signs in, hands over the message, disconnects.
  4. If you chose "Save to Gmail Sent", connects to imap.gmail.com:993 and uploads the copy.
  5. Returns the result to the extension and forgets the request.

Not stored: messages, passwords, addresses, IP addresses. The relay has no database, key-value store or queue. Cloudflare Worker logs are switched off ("observability": { "enabled": false } in the relay's configuration). If your provider refuses, the error sent back to the extension includes the server's reply, with the password lines replaced by ***.

Briefly held: to stop abuse, the hosted relay counts sends per SMTP account (server name + username) with Cloudflare's rate limiter: 20 per minute. The counter expires after the minute.

Who else is involved: Cloudflare runs the relay (Cloudflare's privacy policy) and processes the connection like any website host. Your email provider receives the message, as with any mail app.

What you have to trust

If you use the hosted relay, you trust that it runs the published code and that we don't change it to keep data. Cloudflare Workers can't prove to you which code is deployed. If that's not acceptable, deploy the relay yourself: it takes about ten minutes on a free Cloudflare account, and then the only parties involved are you, Cloudflare and your email provider.

Other safeguards

Reporting a problem

Found a security issue? Please write to adam.hale@atomicmail.ai before publishing it. The relay's source is published on GitHub at launch (link will appear here).