Skip to content

feat: add OAuth2/XOAUTH2 support to SMTP/IMAP channel#375

Merged
bayger merged 1 commit into
devfrom
email-oauth2
Jun 22, 2026
Merged

feat: add OAuth2/XOAUTH2 support to SMTP/IMAP channel#375
bayger merged 1 commit into
devfrom
email-oauth2

Conversation

@bayger

@bayger bayger commented Jun 22, 2026

Copy link
Copy Markdown
Contributor
  • Add optional oauth2 config block to SmtpImapChannelProvider schema
  • OAuth2 token refresh service polling every 5 minutes
  • XOAUTH2 SMTP transport (nodemailer) when oauth2 token present
  • Manual SASL XOAUTH2 for IMAP (imap package) when oauth2 token present
  • Three OAuth2 API endpoints: /authorize, /callback, /refresh
  • OAuth2 tokens threaded through SmtpImapChannelHost to connections
  • OAuth2 secrets (clientSecret, refreshToken, accessToken) stored as secret refs
  • OAuthTokenRefreshError (502) in error handler
  • Register SmtpImapOAuth2Controller routes + OpenAPI paths in swagger
  • Start OAuth2TokenRefreshService on server boot

- Add optional oauth2 config block to SmtpImapChannelProvider schema
- OAuth2 token refresh service polling every 5 minutes
- XOAUTH2 SMTP transport (nodemailer) when oauth2 token present
- Manual SASL XOAUTH2 for IMAP (imap package) when oauth2 token present
- Three OAuth2 API endpoints: /authorize, /callback, /refresh
- OAuth2 tokens threaded through SmtpImapChannelHost to connections
- OAuth2 secrets (clientSecret, refreshToken, accessToken) stored as secret refs
- OAuthTokenRefreshError (502) in error handler
- Register SmtpImapOAuth2Controller routes + OpenAPI paths in swagger
- Start OAuth2TokenRefreshService on server boot
@bayger bayger merged commit 1756637 into dev Jun 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant