* MM-67979 MM-67980: Add SMTP and push proxy connectivity to support packet Adds a `notifications` section to `diagnostics.yaml` in the support packet with SMTP email and push proxy connectivity probe results. - `notifications.email.status`: ok/fail/disabled based on whether SendEmailNotifications is enabled and an SMTP connection can be established using mail.TestConnection() - `notifications.push.status`: ok/fail/disabled based on whether SendPushNotifications is enabled and an HTTP GET to the configured PushNotificationServer URL succeeds - Error messages are included in the `error` field on failure - No email or push notification is sent during the probe Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * fix: handle errcheck lint violations in support_packet_test.go Suppress unhandled error return values from rw.WriteString calls in the mock SMTP server used in tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: use 127.0.0.1 directly in SMTP reachability test Replace localhost:0 with 127.0.0.1:0 for the mock SMTP listener so that it always binds to the loopback interface. In CI Docker containers localhost may resolve to the container IP rather than 127.0.0.1, causing the SMTP dial to fail with connection refused. Also switch from string manipulation to net.TCPAddr type assertion for reliable host/port extraction. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: override MM_EMAILSETTINGS_SMTPSERVER env var in SMTP reachability test The CI environment sets MM_EMAILSETTINGS_SMTPSERVER=inbucket via test.env. Mattermost's config Store.Set() calls GetEnvironment() (os.Environ()) on every UpdateConfig, so env vars silently override any programmatic config change. Use t.Setenv before UpdateConfig so the env var points to 127.0.0.1 for the duration of the subtest. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Add model.StatusDisabled constant and use it in support_packet.go Replace "disabled" string literals with model.StatusDisabled for consistency with model.StatusOk and model.StatusFail. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: use utils.GetHostnameFromSiteURL, extract testPushProxyConnection helper, set LDAP StatusDisabled - Replace manual url.Parse with utils.GetHostnameFromSiteURL (consistent with app/config.go) - Extract push proxy HTTP check into testPushProxyConnection with TODO to move to its own package - Set d.LDAP.Status = model.StatusDisabled when LDAP is not configured - Replace "disabled" string literals in tests with model.StatusDisabled Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add status field to ElasticSearch diagnostics with ok/fail/disabled When indexing is enabled, reports ok or fail based on TestConfig result. When indexing is disabled or the engine is unavailable, reports disabled. Backend/ServerVersion/ServerPlugins are still collected when the engine exists regardless of indexing status. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: update Happy path test for LDAP and ES StatusDisabled assertions Both are disabled in the test environment so they now report StatusDisabled. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: use GET /version endpoint for push proxy connectivity check Use url.JoinPath to construct the /version path safely, replacing raw root URL access. Also validate the HTTP status code so non-2xx/3xx responses are treated as failures. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Mattermost Build <build@mattermost.com>
Mattermost is an open core, self-hosted collaboration platform that offers chat, workflow automation, voice calling, screen sharing, and AI integration. This repo is the primary source for core development on the Mattermost platform; it's written in Go and React, runs as a single Linux binary, and relies on PostgreSQL. A new compiled version is released under an MIT license every month on the 16th.
Deploy Mattermost on-premises, or try it for free in the cloud.
Learn more about the following use cases with Mattermost:
Other useful resources:
- Download and Install Mattermost - Install, setup, and configure your own Mattermost instance.
- Product documentation - Learn how to run a Mattermost instance and take advantage of all the features.
- Developer documentation - Contribute code to Mattermost or build an integration via APIs, Webhooks, slash commands, Apps, and plugins.
Table of contents
- Install Mattermost
- Native mobile and desktop apps
- Get security bulletins
- Get involved
- Learn more
- License
- Get the latest news
- Contributing
Install Mattermost
- Download and Install Mattermost Self-Hosted - Deploy a Mattermost Self-hosted instance in minutes via Docker, Ubuntu, or tar.
- Get started in the cloud to try Mattermost today.
- Developer machine setup - Follow this guide if you want to write code for Mattermost.
Other install guides:
- Deploy Mattermost on Docker
- Mattermost Omnibus
- Install Mattermost from Tar
- Ubuntu 20.04 LTS
- Kubernetes
- Helm
- Debian Buster
- RHEL 8
- More server install guides
Native mobile and desktop apps
In addition to the web interface, you can also download Mattermost clients for Android, iOS, Windows PC, macOS, and Linux.
Get security bulletins
Receive notifications of critical security updates. The sophistication of online attackers is perpetually increasing. If you're deploying Mattermost it's highly recommended you subscribe to the Mattermost Security Bulletin mailing list for updates on critical security releases.
Get involved
- Contribute to Mattermost
- Find "Help Wanted" projects
- Join Developer Discussion on a Mattermost server for contributors
- Get Help With Mattermost
Learn more
- API options - webhooks, slash commands, drivers, and web service
- See who's using Mattermost
- Browse over 700 Mattermost integrations
License
See the LICENSE file for license rights and limitations.
Get the latest news
- X - Follow Mattermost on X, formerly Twitter.
- Blog - Get the latest updates from the Mattermost blog.
- Facebook - Follow Mattermost on Facebook.
- LinkedIn - Follow Mattermost on LinkedIn.
- Email - Subscribe to our newsletter (1 or 2 per month).
- Mattermost - Join the ~contributors channel on the Mattermost Community Server.
- IRC - Join the #matterbridge channel on Freenode (thanks to matterircd).
- YouTube - Subscribe to Mattermost.
Contributing
Please see CONTRIBUTING.md. Join the Mattermost Contributors server to join community discussions about contributions, development, and more.




