From 0e78d0992fb220804420c1409d015956d68cf8ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6?= <14975046+skjnldsv@users.noreply.github.com> Date: Thu, 8 Oct 2026 21:28:11 +0200 Subject: [PATCH] docs(mail): document the email template and its new blocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Describe IEMailTemplate with the sender, note, details and buttons blocks, setLanguage and the footer in the developer manual, list them in the release notes, and warn admins with a custom template class about the redesign in Nextcloud 36. Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: John Molakvoæ <14975046+skjnldsv@users.noreply.github.com> --- .../email_configuration.rst | 7 ++ developer_manual/digging_deeper/email.rst | 112 ++++++++++++++++++ .../images/email-template-blocks.png | Bin 0 -> 72995 bytes developer_manual/release_notes/new.rst | 14 +++ 4 files changed, 133 insertions(+) create mode 100644 developer_manual/images/email-template-blocks.png diff --git a/admin_manual/configuration_server/email_configuration.rst b/admin_manual/configuration_server/email_configuration.rst index ad3a7bd426d..91c216aa0ba 100644 --- a/admin_manual/configuration_server/email_configuration.rst +++ b/admin_manual/configuration_server/email_configuration.rst @@ -110,6 +110,13 @@ settings and look the same in all the different email clients out there. Modifying the look of emails beyond the theming app capabilities """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +.. warning:: Nextcloud 36 redesigned the email template: every email is now a single card, + with dark mode and right-to-left support. A custom class overriding the HTML fragments of the + previous design keeps working, but its parts will look out of place next to the new ones. + Review it against the new ``EMailTemplate`` before upgrading. Calendar emails also no longer + pass the ``meeting_*_html`` values to the template, they pass ``meeting_*_previous`` for + changed values instead. + You can overwrite templates by writing a class that implements the template interface (or extends it to not need to copy over everything). Easiest way is to then put this class into an app and load it so you do not need to patch it on every update. diff --git a/developer_manual/digging_deeper/email.rst b/developer_manual/digging_deeper/email.rst index be39fd13cde..e422b4e075e 100644 --- a/developer_manual/digging_deeper/email.rst +++ b/developer_manual/digging_deeper/email.rst @@ -37,6 +37,118 @@ The mailer is hidden behind the ``\OCP\Mail\IMailer`` interface that can be :ref } } +Email templates +--------------- + +Most emails should not build their own HTML. ``IMailer::createEMailTemplate()`` returns an +``\OCP\Mail\IEMailTemplate`` that renders a themed HTML email and a matching plain text version, +with dark mode support for the mail clients that have it. Attach it to a message with +``IMessage::useTemplate()``: + +.. code-block:: php + + $template = $this->mailer->createEMailTemplate('myapp.ProjectShared', [ + 'project' => $projectName, + ]); + $template->setLanguage($l->getLanguageCode()); + $template->setSubject($l->t('%s shared a project with you', [$sharerName])); + $template->addHeader(); + $template->addHeading($l->t('%s shared a project with you', [$sharerName])); + $template->addBodyText($l->t('You can now see and edit the project.')); + $template->addBodyButton($l->t('Open project'), $projectUrl); + $template->addFooter(); + + $message = $this->mailer->createMessage(); + $message->setTo([$recipientEmail]); + $message->useTemplate($template); + $this->mailer->send($message); + +The first argument of ``createEMailTemplate()`` identifies the email (``.``), and +the second one passes data to custom templates (see `Modifying the look of emails +`_ +in the administration manual). + +Write the email in the recipient's language: get an ``IL10N`` for their language from +``\OCP\L10N\IFactory`` and pass its code to ``setLanguage()``. The template then sets the right +``lang`` and ``dir`` attributes, mirrors the layout for right-to-left languages like Arabic or +Hebrew, and writes the default footer in that language. Call it before ``addFooter()``. + +Building blocks +^^^^^^^^^^^^^^^ + +Since Nextcloud 36, the template has blocks to show who an email is about, a highlighted note, a +card with details, and a row of buttons. Unlike ``addBodyText()`` with a separate plain text, these +blocks never take HTML: every value is escaped by the template, URLs included, and each block +writes its own plain text version. + +.. figure:: ../images/email-template-blocks.png + :alt: An email with a sender, a heading, a details card with a calendar badge, a description note, a warning note and three buttons + :width: 500px + + A sender, a details card, two notes and a row of buttons. + +``addBodySender()`` + The person the email is sent for (sharer, organizer...), with an initials circle, their name + and an optional second line such as their email address. Add it before the heading. + +``addBodyNote()`` + A highlighted box. Use ``IEMailTemplate::NOTE_NEUTRAL`` (the default) for text written by a + user, like a share note or an event description, with the label shown above it. Use + ``NOTE_INFO``, ``NOTE_WARNING`` or ``NOTE_ERROR`` for messages from the server, with the label + as a bold title. Line breaks are kept. + +``addBodyDetails()`` + A card describing an item: title, subtitle, an initials circle or a calendar badge, and + labelled rows. See below. + +``addBodyButtons()`` + Any number of buttons, the first one is the primary action, with an optional question above + them like "Will you attend?". + +The details card is built with ``\OCP\Mail\EMailDetails``. Each row holds one or more parts, each +rendered on its own line: plain text, a link, or muted secondary text. + +.. code-block:: php + + use OCP\Mail\EMailDetails; + use OCP\Mail\IEMailTemplate; + + $template->addHeader(); + $template->addBodySender($organizerName, $organizerEmail); + $template->addHeading($l->t('%s invited you to an event', [$organizerName])); + + $details = (new EMailDetails($eventTitle)) + ->setSubtitle($l->l('date', $start, ['width' => 'full'])) + ->setDateBadge($l->l('date', $start, ['width' => '~MMM']), $l->l('date', $start, ['width' => '~d'])); + $details->addRow($l->t('Where')) + ->text($location) + ->link($l->t('Join in Nextcloud Talk'), $talkUrl); + $details->addRow($l->t('Attendees')) + ->text($firstAttendee) + ->muted($l->n('and %n other', 'and %n others', $remaining)); + $template->addBodyDetails($details); + + $template->addBodyNote($description, $l->t('Description')); + $template->addBodyButtons([ + ['text' => $l->t('Accept'), 'url' => $acceptUrl], + ['text' => $l->t('Decline'), 'url' => $declineUrl], + ], $l->t('Will you attend?')); + $template->addFooter(); + +Use ``setInitials($name)`` instead of ``setDateBadge()`` to show an initials circle, for example +for a conversation or a team. The badge strings are passed as is, so localize them yourself. + +A short note about a shared item goes before its details card. Longer content, like an event +description, goes after it. + +Footer +^^^^^^ + +``addFooter()`` without a text adds the default footer: the instance name and slogan, then +"This is an automatically sent email, please do not reply.". When the email has a sender block, +the second line becomes "This email was sent from on behalf of ." instead. +Pass a text to ``addFooter()`` to replace the default footer entirely. + Inline attachments ------------------ diff --git a/developer_manual/images/email-template-blocks.png b/developer_manual/images/email-template-blocks.png new file mode 100644 index 0000000000000000000000000000000000000000..f74ae6c396f8242adbec5c87e9685c328b8080e4 GIT binary patch literal 72995 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 literal 0 HcmV?d00001 diff --git a/developer_manual/release_notes/new.rst b/developer_manual/release_notes/new.rst index e4fbbcf6f09..27ff4b43c06 100644 --- a/developer_manual/release_notes/new.rst +++ b/developer_manual/release_notes/new.rst @@ -11,6 +11,20 @@ This pages covers new features of the platform. Every feature should just have a brief description. Details have to be documented on a dedicated, persistent page. After branch-off the contents below will be cleared. +Email template blocks +--------------------- + +The email template (``\OCP\Mail\IEMailTemplate``) was redesigned with dark mode and +right-to-left support, and has new building blocks so emails no longer need hand-built HTML: + +- ``addBodySender()`` shows who the email is about, with an initials circle. +- ``addBodyNote()`` shows a highlighted note from a user, or an info, warning or error message. +- ``addBodyDetails()`` shows a card with a title and labelled rows, built with ``\OCP\Mail\EMailDetails``. +- ``addBodyButtons()`` shows any number of buttons. +- ``setLanguage()`` sets the language of the email, which also mirrors the layout for right-to-left languages. + +All values are escaped by the template. See :ref:`email` for details. + New ``\OCP\Files\IUserFolder`` API ----------------------------------