Hello Jenkins community,
My name is Vaibhav. I’m preparing for Google Summer of Code 2026 and I’m interested in the project idea:
“Jenkins email notifications using Outlook SMTP with OAuth”.
I have successfully set up and built the email-ext-plugin locally.
Command used: mvn verify -DskipTests
Environment:
- OS: Windows 11
- Java: OpenJDK 17
- Maven: 3.9.12
- Command used: mvn verify -DskipTests
- Result: BUILD SUCCESS
I would appreciate guidance on:
- Where to start in the email-ext-plugin codebase for OAuth
- Any recommended beginner issues or preparation tasks
- Preferred communication channel with mentors
Thank you for your time.
Quick update on my exploration of the email-ext-plugin:
I’ve reviewed ExtendedEmailPublisher.java and EmailType.java.
I noticed that SMTP properties are configured before JavaMail Session creation, and authentication is currently handled via a JavaMail Authenticator.
This suggests that OAuth support (for Outlook SMTP, using a client-credentials flow) could be added as an alternative authentication mechanism by:
-
introducing OAuth-specific SMTP properties, and
-
providing an OAuth-based Authenticator,
while keeping the existing username/password flow unchanged for backward compatibility.
Next, I plan to explore how Jenkins plugins typically handle OAuth tokens and secrets (credentials storage, secure handling, and refresh flow).
Please let me know if this approach aligns with expectations, or if there’s a preferred starting point.
Update:
I have submitted my first pull request to the Jenkins email-ext-plugin.
PR: Improve logging and exception handling in sendMail by Vaibhav34-2006 · Pull Request #1452 · jenkinsci/email-ext-plugin · GitHub
This change improves logging and exception handling in the sendMail() method
without changing any existing behavior or logic.
CI is currently running and a review has been requested.
Looking forward to feedback and guidance on next steps.
Update:
The PR has now been reviewed and merged.
Improve logging and exception handling in sendMail by Vaibhav34-2006 · Pull Request #1452 · jenkinsci/email-ext-plugin
Thanks to the maintainers for the feedback and guidance.
I’m continuing with small, focused improvements in the email-ext plugin
and will share further progress as I move toward a GSoC proposal.
Hello again,
I wanted to share a quick update on my progress.
Since my previous message, I have continued contributing to the email-ext plugin and opened a few additional pull requests, including documentation improvements and a code change related to SMTP retry logging.
Recent contributions:
• PR #1452 – Improve logging and exception handling in sendMail (merged)
• PR #1464 – Improve logging for SMTP connection retry failures
• Documentation improvements related to the email-ext plugin
I have also prepared a draft GSoC proposal for the project:
“OAuth support for Outlook SMTP in the email-ext plugin.”
I would greatly appreciate any feedback from mentors or community members regarding the architecture, implementation approach, or project timeline before the official GSoC submission period begins.
Proposal draft (please copy and open the link — external links appear to be restricted for my account):
https : //docs.google.com/document/d/12Gschb2gx9lBq3znOZihI_h80k3ojKlNsZJbrdHfso8/edit?usp=sharing
(Please remove the spaces in https : // to open the link.)
Thank you for your time and guidance. I truly appreciate any suggestions that could help improve the proposal.
Hello everyone,
I wanted to share a quick update regarding my GSoC proposal for adding OAuth 2.0 support for Outlook SMTP in the email-ext plugin.
While reviewing the codebase, I analyzed how the current SMTP session is created in the plugin and how authentication is handled through JavaMail. My current approach is to detect OAuth-enabled configurations during session creation and retrieve an OAuth access token via the credential reference (using oauth-credentials-plugin / entra-oauth-plugin) before constructing the XOAUTH2 authentication string.
One design question I am still exploring is related to token handling. Since OAuth access tokens typically expire after around one hour, I am considering whether the token should be refreshed on each email session creation or cached temporarily with an expiry check.
I would appreciate any guidance from maintainers on the preferred approach for handling token lifecycle within Jenkins plugins.
Thank you for your time and feedback.
Hello everyone,
As part of understanding the email-ext plugin internals, I explored the configuration validation logic and opened PR #1489, which adds validation for the SMTP port range in the MailAccount configuration. The PR currently has all CI checks passing and is awaiting maintainer review.
While continuing to explore the codebase, I also opened another small contribution, PR #1500, to add unit tests verifying the SMTP port validation logic. Working on these contributions helped me better understand how configuration fields, validation methods, tests, and CI checks are structured in the plugin.
These explorations are helping me understand the plugin architecture more deeply while preparing my proposal for adding Outlook SMTP OAuth support to the email-ext plugin.
I would also appreciate guidance on one design question related to OAuth implementation:
Would it be better for OAuth access tokens to be refreshed on every SMTP session creation, or should the plugin cache the token temporarily and refresh it only when it expires?
Any suggestions on the preferred approach within Jenkins plugins would be very helpful.
Thank you for the guidance and feedback.
Hello everyone,
I wanted to share a quick update on my contributions and progress:
-
PR #1489 (SMTP port validation in MailAccount) has been successfully merged.
-
PR #1500 (unit tests for SMTP port validation) is currently under review. All major CI checks are passing, and I have addressed the review feedback.
Working on these contributions has helped me better understand the email-ext plugin architecture, especially configuration validation, test structure, and CI workflows.
I have also prepared my GSoC 2026 proposal for:
“Jenkins email notifications using Outlook SMTP with OAuth”
Here is the proposal (Google Docs):
https://docs.google.com/document/d/1Dz-Gx5MxiWog3QufuG2YEG_suMuivUrWZEPtYtpJdi0/edit?usp=sharing
I would really appreciate any feedback or suggestions from mentors and contributors regarding:
I would especially appreciate feedback from @slide_o_mix and other contributors.
Thank you for your time and guidance!
Hi everyone,
I wanted to share an update on my recent contributions to the email-ext plugin.
• Successfully got a PR merged (#1489)
• Worked on another PR (#1464 – Improve logging for SMTP retry failures)
– Resolved merge conflicts
– Updated based on review feedback
– All CI checks are now passing
Thanks to the guidance from mentors and contributors, I gained a deeper understanding of the plugin’s architecture, especially logging behavior, exception handling, and CI workflows.
I have also prepared my GSoC proposal and would really appreciate any feedback on it, especially regarding the design and feasibility.
Thank you!
Hi everyone,
Quick update on my contributions:
• PR #1452 — merged (email-ext plugin improvements)
• PR #1489 — merged (SMTP port validation)
• PR #1464 — conflicts resolved and all CI checks are passing
• PR #1500 — addressed review feedback and working on remaining CI issues
Thanks again to @slide_o_mix for the guidance.
I have also prepared my GSoC proposal and would really appreciate any feedback on it, especially regarding design and feasibility.
Thank you!
Hi everyone, I have submitted my GSoC 2026 proposal for OAuth SMTP support in the email-ext plugin. I would really appreciate any feedback or suggestions for improvement.
Special thanks to @slide_o_mix for the guidance so far!
Hi everyone,
Just a quick follow-up on my GSoC 2026 proposal for OAuth SMTP support in the email-ext plugin.
I would really appreciate feedback on a few specific points:
- Is my OAuth integration approach (especially for Outlook SMTP) aligned with the plugin’s architecture?
- Does the project scope and timeline look realistic?
- Are there any important edge cases or risks I should address?
I have also been actively contributing (recent PRs on SMTP logging and validation), and I’m happy to iterate further based on your suggestions.
Special thanks to @slide_o_mix for the guidance so far!
Any feedback would be extremely helpful !
Hi everyone,
Just a quick update on my recent contributions to the email-ext plugin:
I have worked on multiple PRs around SMTP logging and validation, out of which 3 PRs have been merged, and a few were closed after discussion and learning from mentor feedback.
Merged PRs:
-
#1452 – Improvements to the plugin
-
#1489 – SMTP port validation
-
#1525 – Improved SMTP logging message
Closed PRs (with learnings):
-
#1464 – Closed after feedback. I understood that using context.getListener() is necessary to ensure logs appear in the build output instead of LOGGER.log. I will revisit this with a better approach.
-
#1451 – Closed by mentor after discussion. The idea of improving logging was validated, and the implementation was continued in a follow-up PR (#1453).
-
#1500 – Initial attempt for unit tests had some issues, so I refined the approach and created a cleaner PR (#1526).
Current PR:
- #1526 – Updated according to mentor (@slide_o_mix) feedback, including proper edge case tests and assertions.
These contributions have helped me better understand Jenkins logging practices, testing standards, and contributor expectations. I’m continuously improving based on feedback and would really appreciate any suggestions on my GSoC proposal as well.
Thank you!