Files
b5f007d35e docs: fix broken path links, anchors, and tab rendering from RST-to-MDX migration (#37433)
* docs: resolve cross-file anchor mismatches from RST-to-MDX migration

The Sphinx-to-Docusaurus migration converted `:ref:`/`{ref}` links using
naive text-slugification, so anchors that pointed to headings in a
different file (e.g. release-summary tables linking into their
respective changelog pages) were emitted as same-page fragments and
silently resolved to nothing.

Built a label registry from the original Sphinx `.. _label:` / `(label)=`
targets to recover the true source file for each cross-reference, then
rewrote the affected links to point at the correct file + heading
anchor. Fixes 282 broken cross-file anchors, primarily in the mobile/
desktop/server release-summary pages, plus assorted same-page anchor
mismatches caught by re-auditing after the prior admonition/anchor fix.

* docs: manually resolve remaining anchor mismatches after cross-file audit

Hand-verified fixes for anchors that fuzzy-matching alone couldn't
safely resolve (confirmed against actual heading text/context, and in a
few cases against the original RST source, before applying):

- Typos and dropped words carried over from the original Sphinx docs
  (e.g. "bot-acocunts", "auto-follow-all-new-channel-threads" ->
  "follow-all-new-channel-threads").
- Sphinx auto-generated duplicate-heading IDs (#id1/#id3/#id4) resolved
  to their real target headings.
- Numbered-step TOC links in enterprise-roll-out-checklist.mdx that
  dropped the leading "N. " used in the actual heading slugs.
- Push-notification docs pointing at the wrong file entirely
  (environment-configuration-settings instead of
  push-notification-server-configuration-settings).
- SAML "saml-enterprise" label resolved to its true cross-file target
  (authentication-configuration-settings#saml-2-0), recovered from the
  original RST label definition that the automated registry missed
  because it sat after an RST transition marker.
- sso-saml-technical references converted from broken same-page/
  malformed-path anchors to correct page links.

* docs: fix SAML 2.0 anchor slug (saml-2-0 -> saml-20)

github-slugger strips periods rather than hyphenating them, so "SAML
2.0" slugifies to saml-20, not saml-2-0 as previously fixed.

* docs: fix broken path links found during docs/main migration cleanup

* docs: convert div.tab blocks to Docusaurus Tabs/TabItem components

* docs: restore missing Kubernetes deployment architecture diagrams

The RST-to-MDX migration never copied over the AWS/Azure/Oracle
architecture diagrams referenced by the deployment-architecture-at-scale
page, leaving broken images in each Tabs/TabItem.

* docs: fix 7 anchor mismatches from the fragment/heading audit

Covers three root causes from the anchor mismatch breakdown:
- Fragment repeated the target page's own title instead of a real
  heading, so the link is simplified to point at the bare page.
- Heading exists verbatim but lives on a sibling settings page
  (experimental-configuration-settings, push-notification-server-
  configuration-settings) rather than environment-configuration-settings.
- A page path was mistakenly pasted into a same-page #fragment instead
  of being used as a real cross-page link.

* docs: fix 8 anchor slugs that were close but didn't match the real heading

Repoints links whose fragment was a plausible guess (typo, reworded
heading, or wrong section) at the actual auto-generated slug of the
target heading, confirmed by inspecting each target page directly.

* docs: merge split Tabs blocks so tabs render horizontally

The div.tab conversion script split some sibling tab groups into
separate single-item Tabs blocks whenever a stray blockquote marker
sat between them, causing them to render stacked instead of as one
horizontal tab bar. Merges the MySQL/PostgreSQL and Team/Enterprise
Edition tab groups back into single Tabs blocks.

* docs: remove Azure tab and restore Kubernetes deploy content

The Mattermost Operator, Azure, and Oracle platform tabs on the
Kubernetes deployment guide were split across two separate Tabs
blocks (rendering stacked instead of as one tab bar) and all three
tab bodies were empty because the migration never flattened the
original RST include directives. Removes the unsupported Azure tab
and restores the Mattermost Operator and Oracle content from the
pre-migration RST sources as a single merged Tabs block.

* addresscoderabbitreview

* docs: unify Linux/Kubernetes/Containers deploy pages and fix FIPS/STIG placement

Kubernetes and Containers duplicated full install content across a top-level
page (Tabs) and orphaned sidebar subpages that nothing linked to. Reworked
both to follow the Linux page's pattern: shared content on the landing page,
platform-specific instructions live once in their own subpage.

Also removed configure-fips-at-install-time.mdx, which claimed FIPS is
available for native Linux installs — FIPS/STIG in Mattermost is a container
image property (Chainguard-based build), not available outside Docker/
Kubernetes. Consolidated all FIPS/STIG references onto
containers/fips-stig.mdx and pointed the Mattermost Operator subpage (not
Oracle OKE, which doesn't expose image selection) at it.

* docs: fix review findings — image alt text, Important callout markup, typo

- Replace generic alt="image" on scaling diagrams with descriptive text
  identifying cloud provider and user scale.
- Convert raw div.important markup in deploy-containers.mdx to the
  repo's <Important> component, matching usage elsewhere in the file.
- Fix "Matermost" typo in manage-your-display-options.mdx.

---------

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-10 14:50:13 +03:00

953 lines
17 KiB
Plaintext

---
title: "Email templates"
---
<PlanAvailability slug="all-commercial" />
Mattermost has a few email templates that are sent out when a specific event occurs. Most of the time these templates do not need to be modified. In case additional modifications are necessary, all available props in each email are listed below. The 'Content'-Field is just to give a quick description of the prop. Please check the i18n strings for the exact wording.
The email templates are located in the Mattermost server directory in the `templates` folder. The corresponding strings for each prop can be found in the `i18n` folder.
<Note>
\- The props between different email templates are not interchangeable without additional server code changes. - Always back up changes to the `templates` and `i18n` folders before upgrading the server to avoid losing customizations. - From Mattermost v11.3, changes to HTML templates require a server restart to take effect.
</Note>
## Available templates
### Email footer
**Purpose**: This is appended to all outgoing emails sent by Mattermost.
**Props**:
<table style={{width: '68%'}}>
<colgroup>
<col style={{width: '12%'}} />
<col style={{width: '25%'}} />
<col style={{width: '30%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>Footer</td>
<td>Message intro</td>
<td>api.templates.email_footer</td>
</tr>
<tr>
<td>Organization</td>
<td>Name of Organization</td>
<td>api.templates.email_organization</td>
</tr>
<tr>
<td>EmailInfo1</td>
<td>First line of footer</td>
<td>api.templates.email_info1</td>
</tr>
<tr>
<td>EmailInfo2</td>
<td>Second line of footer</td>
<td>api.templates.email_info2</td>
</tr>
<tr>
<td>EmailInfo3</td>
<td>Third line of footer</td>
<td>api.templates.email_info3</td>
</tr>
<tr>
<td>SupportEmail</td>
<td>Email for Mattermost support</td>
<td>--</td>
</tr>
</tbody>
</table>
### SendChangeUsernameEmail
**Purpose**: Sent to the user when username has been changed.
**Body Props**:
<table style={{width: '72%'}}>
<colgroup>
<col style={{width: '8%'}} />
<col style={{width: '25%'}} />
<col style={{width: '37%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.username_change_body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.username_change_body.info</td>
</tr>
<tr>
<td>Warning</td>
<td>Warning text</td>
<td>api.templates.email_warning</td>
</tr>
</tbody>
</table>
### SendEmailChangeVerifyEmail
**Purpose**: Sent to the user when an email change has been requested. Contains verification link and button.
**Body Props**:
<table style={{width: '82%'}}>
<colgroup>
<col style={{width: '12%'}} />
<col style={{width: '26%'}} />
<col style={{width: '42%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.email_change_verify_body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.email_change_verify_body.info</td>
</tr>
<tr>
<td>VerifyUrl</td>
<td>URL for email verification</td>
<td>--</td>
</tr>
<tr>
<td>VerifyButton</td>
<td>Button for email verification</td>
<td>api.templates.email_change_verify_body.button</td>
</tr>
</tbody>
</table>
### SendEmailChangeEmail
**Purpose**: Sent to the user when the email has been changed successfully.
**Body Props**:
<table style={{width: '69%'}}>
<colgroup>
<col style={{width: '8%'}} />
<col style={{width: '25%'}} />
<col style={{width: '35%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.email_change_body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.email_change_body.info</td>
</tr>
<tr>
<td>Warning</td>
<td>Warning text</td>
<td>api.templates.email_warning</td>
</tr>
</tbody>
</table>
### SendVerifyEmail
**Purpose**: Sent to the user upon account creation to verify email address.
**Body Props**:
<table style={{width: '66%'}}>
<colgroup>
<col style={{width: '10%'}} />
<col style={{width: '25%'}} />
<col style={{width: '30%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.verify_body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.verify_body.info</td>
</tr>
<tr>
<td>VerifyUrl</td>
<td>URL for email verification</td>
<td>--</td>
</tr>
<tr>
<td>Button</td>
<td colspan="2">Button for email verification | api.templates.verify_body.button</td>
</tr>
</tbody>
</table>
### SendSignInChangeEmail
**Purpose**: Sent to the user when the login method has been changed (i.e. from email to LDAP, etc.)
**Body Props**:
<table style={{width: '75%'}}>
<colgroup>
<col style={{width: '8%'}} />
<col style={{width: '25%'}} />
<col style={{width: '40%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.signin_change_email.body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.signin_change_email.body.info</td>
</tr>
<tr>
<td>Warning</td>
<td>Warning text</td>
<td>api.templates.email_warning</td>
</tr>
</tbody>
</table>
### SendWelcomeEmail
**Purpose**: Sent to the user when the account has been created. May also contain download links to Apps as well as email verification links.
**Body Props**:
<table style={{width: '82%'}}>
<colgroup>
<col style={{width: '15%'}} />
<col style={{width: '25%'}} />
<col style={{width: '41%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.welcome_body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.welcome_body.info</td>
</tr>
<tr>
<td>Button</td>
<td>Button for confirmation</td>
<td>api.templates.welcome_body.button</td>
</tr>
<tr>
<td>Info2</td>
<td>Continuation of message body</td>
<td>api.templates.welcome_body.info2</td>
</tr>
<tr>
<td>Info3</td>
<td>Continuation of message body</td>
<td>api.templates.welcome_body.info3</td>
</tr>
</tbody>
</table>
**Optional Props**:
<table style={{width: '82%'}}>
<colgroup>
<col style={{width: '15%'}} />
<col style={{width: '25%'}} />
<col style={{width: '41%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>AppDownloadInfo</td>
<td>Info for App Downloads</td>
<td>api.templates.welcome_body.app_download_info</td>
</tr>
<tr>
<td>AppDownloadLink</td>
<td>Download link for Apps</td>
<td>--</td>
</tr>
<tr>
<td>VerifyUrl</td>
<td>Link for verification</td>
<td>--</td>
</tr>
</tbody>
</table>
### SendPasswordChangeEmail
**Purpose**: Sent to the user when password has been changed.
**Body Props**:
<table style={{width: '72%'}}>
<colgroup>
<col style={{width: '8%'}} />
<col style={{width: '25%'}} />
<col style={{width: '37%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.password_change_body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.password_change_body.info</td>
</tr>
<tr>
<td>Warning</td>
<td>Warning text</td>
<td>api.templates.email_warning</td>
</tr>
</tbody>
</table>
### SendAccessTokenEmail
**Purpose**: Sent to the user when an access token has been added to the account.
**Body Props**:
<table style={{width: '74%'}}>
<colgroup>
<col style={{width: '8%'}} />
<col style={{width: '25%'}} />
<col style={{width: '40%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.user_access_token_body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.user_access_token_body.info</td>
</tr>
<tr>
<td>Warning</td>
<td>Warning text</td>
<td>api.templates.email_warning</td>
</tr>
</tbody>
</table>
### SendPasswordResetEmail
**Purpose**: Sent to the user when password request has been initiated.
**Body Props**:
<table style={{width: '64%'}}>
<colgroup>
<col style={{width: '9%'}} />
<col style={{width: '25%'}} />
<col style={{width: '29%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.reset_body.title</td>
</tr>
<tr>
<td>Info1</td>
<td>Message body</td>
<td>api.templates.reset_body.info1</td>
</tr>
<tr>
<td>Info2</td>
<td>Continuation of message body</td>
<td>api.templates.reset_body.info2</td>
</tr>
<tr>
<td>ResetUrl</td>
<td>URL to reset password</td>
<td>--</td>
</tr>
<tr>
<td>Button</td>
<td>Button for confirmation</td>
<td>api.templates.reset_body.button</td>
</tr>
</tbody>
</table>
### SendMfaChangeEmail
**Purpose**: Sent to the user when multi-factor authentication method has been changed.
**Body Props when MFA is activated**:
<table style={{width: '70%'}}>
<colgroup>
<col style={{width: '8%'}} />
<col style={{width: '25%'}} />
<col style={{width: '35%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.mfa_activated_body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.mfa_activated_body.info</td>
</tr>
<tr>
<td>Warning</td>
<td>Warning text</td>
<td>api.templates.email_warning</td>
</tr>
</tbody>
</table>
**Body Props when MFA is deactivated**:
<table style={{width: '72%'}}>
<colgroup>
<col style={{width: '8%'}} />
<col style={{width: '25%'}} />
<col style={{width: '37%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.mfa_deactivated_body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.mfa_deactivated_body.info</td>
</tr>
<tr>
<td>Warning</td>
<td>Warning text</td>
<td>api.templates.email_warning</td>
</tr>
</tbody>
</table>
### SendDeactivateAccountEmail
**Purpose**: Sent to the user when account has been deactivated.
**Body Props**:
<table style={{width: '68%'}}>
<colgroup>
<col style={{width: '8%'}} />
<col style={{width: '25%'}} />
<col style={{width: '34%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.deactivate_body.title</td>
</tr>
<tr>
<td>Info</td>
<td>Message body</td>
<td>api.templates.deactivate_body.info</td>
</tr>
<tr>
<td>Warning</td>
<td>Warning text</td>
<td>api.templates.deactivate_body.warning</td>
</tr>
</tbody>
</table>
### SendInviteEmails
**Purpose**: Sent to the user when team invite via email has been used.
**Body Props**:
<table style={{width: '99%'}}>
<colgroup>
<col style={{width: '9%'}} />
<col style={{width: '56%'}} />
<col style={{width: '33%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Title</td>
<td>Message heading</td>
<td>api.templates.invite_body.title</td>
</tr>
<tr>
<td>Info1</td>
<td>Message body</td>
<td>api.templates.invite_body.info</td>
</tr>
<tr>
<td>Button</td>
<td>Button for confirmation</td>
<td>api.templates.invite_body.button</td>
</tr>
<tr>
<td>ExtraInfo</td>
<td>Additional info about Mattermost</td>
<td>api.templates.invite_body.extra_info</td>
</tr>
<tr>
<td>TeamURL</td>
<td>URL to the team the user has been invited to</td>
<td>--</td>
</tr>
<tr>
<td>Link</td>
<td>URL for team invite confirmation (not to be confused with TeamURL)</td>
<td>--</td>
</tr>
</tbody>
</table>
### NotificationEmailBody
**Purpose**: Sent to the user as a notification for new messages or mentions.
**Body Props**:
<table style={{width: '63%'}}>
<colgroup>
<col style={{width: '9%'}} />
<col style={{width: '25%'}} />
<col style={{width: '28%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>SiteURL</td>
<td>URL of the Mattermost server</td>
<td>--</td>
</tr>
<tr>
<td>Button</td>
<td>Button to post</td>
<td>api.templates.post_body.button</td>
</tr>
<tr>
<td>TeamLink</td>
<td>URL to Team</td>
<td>--</td>
</tr>
</tbody>
</table>
This email can change depending on the settings and type of channel the notification is sent for.
**For group channels**:
**With full notification contents enabled**:
<table style={{width: '68%'}}>
<colgroup>
<col style={{width: '10%'}} />
<col style={{width: '15%'}} />
<col style={{width: '41%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>BodyText</td>
<td>Message intro</td>
<td>app.notification.body.intro.group_message.full</td>
</tr>
<tr>
<td>Info1</td>
<td>Channel name</td>
<td>app.notification.body.text.group_message.full</td>
</tr>
<tr>
<td>Info2</td>
<td>Message contents</td>
<td>app.notification.body.text.group_message.full2</td>
</tr>
<tr>
<td>SenderName</td>
<td>Name of sender</td>
<td>--</td>
</tr>
</tbody>
</table>
**Without**:
<table style={{width: '67%'}}>
<colgroup>
<col style={{width: '9%'}} />
<col style={{width: '13%'}} />
<col style={{width: '44%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>BodyText</td>
<td>Message intro</td>
<td>app.notification.body.intro.group_message.generic</td>
</tr>
<tr>
<td>Info</td>
<td>Timestamp</td>
<td>app.notification.body.text.group_message.generic</td>
</tr>
</tbody>
</table>
**For direct messages**:
**With full notification contents enabled**:
<table style={{width: '69%'}}>
<colgroup>
<col style={{width: '10%'}} />
<col style={{width: '23%'}} />
<col style={{width: '35%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>BodyText</td>
<td>Message intro</td>
<td>app.notification.body.intro.direct.full</td>
</tr>
<tr>
<td>Info1</td>
<td>Empty for direct messages</td>
<td>--</td>
</tr>
<tr>
<td>Info2</td>
<td>Message contents</td>
<td>app.notification.body.text.direct.full</td>
</tr>
<tr>
<td>SenderName</td>
<td>Name of sender</td>
<td>--</td>
</tr>
</tbody>
</table>
**Without**:
<table style={{width: '60%'}}>
<colgroup>
<col style={{width: '9%'}} />
<col style={{width: '13%'}} />
<col style={{width: '37%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>BodyText</td>
<td>Message intro</td>
<td>app.notification.body.intro.direct.generic</td>
</tr>
<tr>
<td>Info</td>
<td>Timestamp</td>
<td>app.notification.body.text.direct.generic</td>
</tr>
</tbody>
</table>
**Notifications**:
**With full notification contents enabled**:
<table style={{width: '67%'}}>
<colgroup>
<col style={{width: '10%'}} />
<col style={{width: '15%'}} />
<col style={{width: '40%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>BodyText</td>
<td>Message intro</td>
<td>app.notification.body.intro.notification.full</td>
</tr>
<tr>
<td>Info1</td>
<td>Channel name</td>
<td>app.notification.body.text.notification.full</td>
</tr>
<tr>
<td>Info2</td>
<td>Message contents</td>
<td>app.notification.body.text.notification.full2</td>
</tr>
<tr>
<td>SenderName</td>
<td>Name of sender</td>
<td>--</td>
</tr>
</tbody>
</table>
**Without**:
<table style={{width: '78%'}}>
<colgroup>
<col style={{width: '9%'}} />
<col style={{width: '25%'}} />
<col style={{width: '42%'}} />
</colgroup>
<thead>
<tr>
<th>Prop</th>
<th>Content</th>
<th>i18n String</th>
</tr>
</thead>
<tbody>
<tr>
<td>BodyText</td>
<td>URL of the Mattermost server</td>
<td>app.notification.body.intro.notification.generic</td>
</tr>
<tr>
<td>Info</td>
<td>Message heading</td>
<td>app.notification.body.text.notification.generic</td>
</tr>
</tbody>
</table>