[GSoC 2026] Introduction – Harshavardhan | Email Notifications via Outlook SMTP with OAuth

Hi Jenkins community! :waving_hand:

I’m Harshavardhan(@harshavardhanreddy06), a Java developer applying
for GSoC 2026 with Jenkins.


Project I’m Working On

I’m focused on “Jenkins Email Notifications using Outlook SMTP with OAuth”
and specifically JENKINS-73486
OAuth 2.0 not working with Office 365.

The problem: The plugin passes client_secret directly as the XOAUTH2 password,
but Microsoft requires fetching a short-lived access token via the client_credentials
flow from https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token.
Without this, every O365 auth attempt fails with 535 5.7.3 Authentication unsuccessful.

My plan: Add an O365 token provider inside MailAccount.java that:

  • Fetches a token using clientId, clientSecret, and tenantId
  • Auto-refreshes it before it expires (tokens live only 1 hour)
  • Requires no manual config from the user

Contribution So Far

I’ve already opened a PR to get familiar with the codebase:

PR #1453 — Replace printStackTrace with LOGGER in script execution and template rendering

Replaces raw printStackTrace calls in ExtendedEmailPublisher.java, ScriptContent.java,
AbstractScriptTrigger.java, and SimpleTemplateEngine.java with proper LOGGER.log()
using Jenkins logging APIs — improving log consistency and making stack traces visible
in the Jenkins log configuration UI.


Questions for Mentors

  1. Should the O365 token refresh logic live in MailAccount.java, or would a separate
    OAuthTokenProvider class be cleaner?
  2. Are there existing integration test patterns in this plugin I should follow for
    testing SMTP auth flows?

Happy to start working on a design doc / draft PR for the O365 OAuth fix. Would love
any early feedback from mentors!

— Harsha | GitHub: @harshavardhanreddy06