Project

General

Profile

Actions

Bug #93992

closed

Forms: html emails get sent with plaintext template when using {@format} wildcard in "templatePathAndFilename" and not setting "useFluidEmail"

Added by Denis Mir over 3 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
Start date:
2021-04-27
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
10
PHP Version:
7.4
Tags:
Complexity:
no-brainer
Is Regression:
Yes
Sprint Focus:

Description

In TYPO3 10LTS (current version 10.4.15) there is a bug in the ext "form" that causes html emails to be sent with the plaintext template.

General setup:

- useFluidEmail: FALSE
- addHtmlPart: TRUE
- templatePathAndFilename: path set including {@format} wildcard

Bug:

With this setup initializeStandaloneView() gets called twice. Once for the plaintext part and once for the html part.

        if (isset($this->options['templatePathAndFilename'])) {
            $this->options['templatePathAndFilename'] = strtr($this->options['templatePathAndFilename'], [
                '{@format}' => $format
            ]);
            $standaloneView->setTemplatePathAndFilename($this->options['templatePathAndFilename']);

This code snippet from line 215 sets $this->options['templatePathAndFilename'] and overrides the {@format} with Plaintext. On the second run (html part) the wildcard is already replaced so the html email gets the same template like the plaintext email.

This is incorrect and a bug.

The error is introduced in 10LTS and was a regression from 9LTS since in 9LTS only a plaintext OR html email could be sent not both.

A simple fix would be:

        if (isset($this->options['templatePathAndFilename'])) {
            $templatePathAndFilename = strtr($this->options['templatePathAndFilename'], [
                '{@format}' => $format,
            ]);
            $standaloneView->setTemplatePathAndFilename($templatePathAndFilename);
        }

Related issues 1 (0 open1 closed)

Has duplicate TYPO3 Core - Bug #90987: EmailFinisher use only plaintext Fluid templateClosed2020-04-09

Actions
Actions #1

Updated by Mathias Brodala over 3 years ago

  • Description updated (diff)
Actions #2

Updated by Denis Mir over 3 years ago

The error is still valid for 11LTS since the StandaloneView is still supported in 11LTS. From 12LTS it will be gone. That means the templatePathAndFilename can still be used in 11LTS. (including the {@format} wildcard which causes the error)

Actions #3

Updated by Gerrit Code Review over 3 years ago

  • Status changed from New to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/68881

Actions #4

Updated by Oliver Bartsch over 3 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
Actions #5

Updated by Gerrit Code Review over 3 years ago

  • Status changed from Resolved to Under Review

Patch set 1 for branch 10.4 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/68882

Actions #6

Updated by Oliver Bartsch over 3 years ago

  • Status changed from Under Review to Resolved
Actions #7

Updated by Benni Mack over 3 years ago

  • Status changed from Resolved to Closed
Actions #8

Updated by Andreas Häfner over 3 years ago

  • Has duplicate Bug #90987: EmailFinisher use only plaintext Fluid template added
Actions

Also available in: Atom PDF