Jellyfin email and the Microsoft 365 Basic auth shutdown
Jellyfin is a self-hosted media server for films, television and music, usually run for one household. It sends:
- a message when an item is added to the library, to whoever runs the server
- authentication failures, successful logins and a user being locked out
- scheduled-task completions, plugin installs and pending-restart notices
None of that is noisy, and none of it is noticed when it stops. Mail that is never sent leaves no error on any screen anybody looks at.
What changes at the end of December 2026
If these messages go out through Microsoft 365 with a username and a password, Exchange Online stops accepting that by default. Not throttles — refuses. An administrator can switch it back on, which buys time rather than solving it: Microsoft announces the final removal date in the second half of 2027, and tenants created after December 2026 do not get the option at all.
Which of the four you are looking at is decided by the exact string the server sends back.
Why this application fits a free relay
Jellyfin’s notifications go to whoever runs the server, not to the people watching, and the SMTP destination takes exactly one Receiver Address - so there is no audience deciding whether to trust the sender. Whether it stays under 200 a day is a choice you make when you tick the notification types rather than a property of Jellyfin: Item Added on a library that imports a season at a time, or Playback Progress on any library at all, will pass the cap in an afternoon.
That is the honest test, and it is worth applying before the settings: mail leaves from a generated @msgwing.com address rather than your own domain, and the cap is 200 messages a day. For an invoice or a shop receipt that is disqualifying. For Jellyfin it usually is not.
Settings
Jellyfin does not send email itself. Its own documentation says notifications appear on the dashboard and that anything else goes through the Webhook plugin - so mail exists only there. Install it from Dashboard -> Plugins -> Catalog, where it is filed under Administration rather than under notifications, restart the server, then open Dashboard -> Plugins -> Webhook and use Add SMTP Destination. These are the labels on that form.
| Setting | Value |
|---|---|
Sender Address | your @msgwing.com login |
Receiver Address | your own inbox, where you want the alerts |
SMTP Server Address | mx.msgwing.com |
SMTP Port | 465 |
Use Credentials | ticked |
Username | your @msgwing.com login |
Password | your @msgwing.com password |
Use SSL | ticked |
Register at msgwing.com first — the login and password are generated and shown once.
The part worth reading twice
465 is not a typo and 587 will not work here. Use SSL is not a STARTTLS toggle: the plugin passes SslOnConnect when it is ticked and no encryption whatsoever when it is not, and it offers no third option - so 587 either meets a client expecting implicit TLS or sends your password in the clear for the relay to refuse. Both mistakes are invisible from Jellyfin. Every send failure is caught and written as a single warning line to the server log, so the notification looks delivered and nothing arrives. Turn on debug logging for Jellyfin.Plugin.Webhook in logging.json before you trust an alert to reach you. Jellyfin’s prose documentation never names an SMTP field, so the labels above are read off the configuration form the plugin itself ships, linked below - not quoted from a manual page that does not exist.
Where these names come from
Every field above was read off Webhook plugin: the SMTP destination form, Jellyfin’s own documentation, rather than recalled. If that page and this one disagree, that page is right and this one is out of date — say so.
Related
- Other self-hosted applications
- Connection values and every other application
- All SMTP AUTH error messages
- Tools that are a better fit than this one
Last reviewed 2026-08-29.
Updated 31 Aug 2026