mail_server_configurator_selection
New in Odoo 19, the mail_server_configurator_selection widget turns a plain selection into the per-user outgoing mail server setup: pick Gmail or Outlook, run the OAuth flow, and test the connection, all from user Preferences.
| Technical name | mail_server_configurator_selection |
|---|---|
| Field types | selection |
| Views | form |
| Module | mail, installed with Discuss and any messaging app |
| Used in core | 2 occurrences in the mail module, both on the user Preferences form |
| Versions | Odoo 20.0, Odoo 19.0 |
| No-code setup | No. This is a purpose-built control for res.users; there is no Studio path. |
| Alternatives | selection, radio, dynamic_selection |
What the Mail server selector does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
placeholder_field | field name | Inherited declaration from the base selection widget. Dead on the base widget and dead here: no extractProps ever reads it. Listed so you do not waste time trying it.(since Odoo 19.0) |
The inherited declaration is dead code. The base selection widget declares placeholder_field in its options metadata but its extractProps never reads it, a quirk we verified on the base widget's own page. It is exactly as dead here. Treat this widget as option-less.
Working examples
The dirty-state dodge and whole-form saves
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Only internal changes and icon swaps visible on the development branch; see below. |
| Odoo 19.0 | Verified | Verified against the shipped source. First release with the widget and the per-user server flow. |
| Odoo 18.0 | Not available | Widget and underlying feature do not exist. |
| Odoo 17.0 | Not available | Widget does not exist. |
| Odoo 16.0 | Not available | Widget does not exist. |
Upgrade note. The widget, the outgoing_mail_server_type field, and the per-user server flow are all new in Odoo 19. There is nothing to migrate from earlier versions; on 18 and below, outgoing mail is configured only on company-level SMTP records.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| The dropdown renders as plain text | You are viewing another user's form. The widget is editable only when the record id equals your own user id. Have each user open their own Preferences to run the setup; admins cannot do it for them. |
| Test Connection button never appears | Either the selection is still default, or outgoing_mail_server_id is not loaded in the view, or no server is configured yet. Keep the invisible outgoing_mail_server_id field in the view, exactly as core does, and finish the provider setup first. |
| Choosing a provider throws an unrelated validation error | The widget saves the whole Preferences form before calling the setup action, so any other invalid field blocks it. Fill the required Preferences fields, then pick the provider again. |
| Selection snaps back to its previous value after an error | Designed behavior: the catch block reverts the local value and shows the server's message as a red toast. Read the toast; it carries the actual error from action_setup_outgoing_mail_server. |
| Red Connection failed label on the button | action_test_outgoing_mail_server raised; credentials expired or the OAuth grant was revoked. Rerun the provider setup to refresh the grant, then test again. |
Mail server selector vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
mail_server_configurator_selection | The per-user Gmail and Outlook sending setup it was built for | Saves the form and launches a server action on every change |
| selection | Ordinary selection fields | Just stores the value; runs nothing on change |
| radio | Few options that should all stay visible | Flat buttons, no dropdown, no side effects |
| dynamic_selection | Selections whose choices come from another field | Filters the option list instead of acting on it |
Frequently asked questions
What does the mail_server_configurator_selection widget do?+
Why can I not change the mail server on another user's form?+
Why does the widget need the invisible outgoing_mail_server_id field?+
Does the widget support any options?+
What happens if the provider setup fails?+
Is mail_server_configurator_selection available before Odoo 19?+
Does anything change in Odoo 20?+
Email deliverability problems rarely stop at the widget
DNS records, OAuth apps, per-user servers, and bounce handling all have to line up before mail flows reliably. We configure and troubleshoot Odoo email end to end, from server setup to custom sending logic, on Odoo 16 through 19.
Book a free consultation