We handle credentials that connect to your mailbox. Here is exactly how we protect them and what our security posture looks like.
OAuth tokens and SMTP passwords are encrypted with AES-256-GCM before being written to the database. The key is derived from a master secret stored in a separate secrets manager, not in the database.
Keys are rotated quarterly. Existing records are re-encrypted during rotation using a background job that processes records in small batches to avoid downtime.
Credentials are never written to log files, error reports, or traces in plaintext. We use structured logging with field-level redaction on any object that contains a token or password.
Gmail: gmail.send only. Microsoft 365: Mail.Send + offline_access. We never request inbox read, contacts, calendar, or any scope beyond what is strictly required to dispatch a message.
If you discover a security vulnerability in JS2Mail, please report it to us privately before disclosing it publicly. We ask for a reasonable window to investigate and patch.
Please include a description of the vulnerability, steps to reproduce it, and the potential impact. We do not currently offer monetary bug bounties but we will credit you by name if you'd like.