Signatures deprecated

Signatures

Mail signatures support raw signature templates, managed signatures, and compose-time placeholders.

Placeholders are rendered only when a signature is inserted in compose. In settings, the raw template stays visible and editable.

Placeholder syntax

Basic placeholder:

{{ firstName }}

Placeholder with explicit format:

{{ company.website | link }}

Supported formats:

Format Result
text Escaped text output. This is the default.
link HTML link, adds https:// if no protocol is present.
image HTML image tag.
mailto Mail link.
tel Telephone link.

Supported fields

The following placeholders are supported directly from user profile data:

Names

Placeholder Source
{{ firstName }} first_name
{{ secondName }} second_name
{{ lastName }} last_name
{{ fullName }} Derived full name
{{ suffix }} suffix
{{ title }} title

Company / job

Placeholder Source Default format
{{ position }} position text
{{ department }} department text
{{ room }} room_number text
{{ roomNumber }} room_number text
{{ company }} company text
{{ url }} url link

Communication

Placeholder Source Default format
{{ email }} email1 mailto
{{ email1 }} email1 mailto
{{ phone.cell }} cellular_telephone1 tel
{{ phone.mobile }} cellular_telephone1 tel
{{ phone.home }} telephone_home1 tel
{{ phone.work }} telephone_business1 tel
{{ fax }} fax_business tel

Home address

Placeholder Source
{{ address.home.street }} street_home
{{ address.home.code }} postal_code_home
{{ address.home.postalCode }} postal_code_home
{{ address.home.city }} city_home
{{ address.home.state }} state_home
{{ address.home.country }} country_home

Work address

Placeholder Source
{{ address.work.street }} street_business
{{ address.work.code }} postal_code_business
{{ address.work.postalCode }} postal_code_business
{{ address.work.city }} city_business
{{ address.work.state }} state_business
{{ address.work.country }} country_business

Configured placeholder data

Additional placeholder values can be configured under:

io.ox/mail/signatures/data/**

These values are useful for company-wide data that should not come from the user profile, for example website, logo, hotline, legal text, or campaign links.

Examples:

io.ox/mail:
  signatures:
    data:
      company:
        website: portal.example.test
        email: info@example.test
        phone: +49 123 456789
        logo: https://example.test/logo.png
      legal:
        disclaimer: Confidential. Internal use only.
      campaign:
        spring:
          url: https://example.test/spring

This can be used in signatures like:

<p>{{ fullName }}</p>
<p>{{ position }}</p>
<p>{{ email }}</p>
<p>{{ company.website | link }}</p>
<p>{{ company.phone }}</p>
<p><img data-src="{{ company.logo }}"></p>
<p>{{ legal.disclaimer }}</p>
<p>{{ campaign.spring.url | link }}</p>

Notes: - company.website, company.email, company.phone, and company.logo have built-in default formats. - Other configured keys under company.*, campaign.*, or legal.* default to plain text unless a format is given explicitly. - Unknown placeholders remain unchanged so missing values stay visible.

Managed signatures

Administrators can provide centrally-managed signatures that appear in every user’s signature list. They are read-only and rendered with the user’s own contact data at compose time.

Enable the feature in the App Suite middleware:

io.ox/core//features/managedSignatures: true

Provide a signatures.yaml file in the mail assets directory (default /etc/mail-assets). The directory is mounted from a ConfigMap shared across all mail-assets features. See Signature Designer for the deployment setup.

File format

signatures.yaml is a YAML object map keyed by a stable identifier:

company_default:
  title: Company Default Signature
  insertion: below
  content: |
    <p>{{ fullName }}<br>{{ position }}<br>{{ company }}</p>
    <p>{{ phone.work | tel }}<br>{{ email | mailto }}</p>

legal_notice:
  title: Legal Notice
  content: |
    <p>{{ legal.disclaimer }}</p>
Field Required Description
title No Display name in the signature list. Falls back to the map key.
content Yes HTML with {{ }} placeholders (see Placeholder syntax above).
insertion No above or below quoted text. Falls back to the user’s default.

Behavior

  • Appear above user signatures in settings, in definition order, with a "Predefined" badge.
  • Read-only — users cannot edit or delete them, but can pick them as default.
  • Placeholders render at compose time; the settings list shows the raw {{ }} template.
  • A missing or malformed signatures.yaml results in an empty list; no error is shown.

Managed templates

Administrators can provide centrally-managed mail templates that users can insert from the compose dropdown. They are read-only and rendered with the user’s contact data at insert time.

Enable the feature in the App Suite middleware:

io.ox/core//features/managedTemplates: true

Provide a templates.yaml file in the mail assets directory (default /etc/mail-assets). The directory is mounted from a ConfigMap shared across all mail-assets features. See Signature Designer for the deployment setup.

File format

templates.yaml is a YAML object map keyed by a stable identifier:

welcome:
  title: Welcome Email
  content: |
    <p>Dear {{ fullName }},</p>
    <p>Welcome to {{ company }}!</p>
    <p>Best regards,<br>The {{ company }} Team</p>
Field Required Description
title No Display name in the template list. Falls back to the map key.
content Yes HTML with {{ }} placeholders (see Placeholder syntax above).

Behavior

  • Appear above user templates in settings and in the compose dropdown, in definition order, with a "Predefined" badge.
  • Read-only — users cannot edit or delete them.
  • Placeholders render at insert time; the settings list shows the raw {{ }} template.
  • A missing or malformed templates.yaml results in an empty list; no error is shown.