diff --git a/src/Symfony/Component/Mime/Header/ParameterizedHeader.php b/src/Symfony/Component/Mime/Header/ParameterizedHeader.php index d8e50011fa..9d3b905a28 100644 --- a/src/Symfony/Component/Mime/Header/ParameterizedHeader.php +++ b/src/Symfony/Component/Mime/Header/ParameterizedHeader.php @@ -158,7 +158,8 @@ final class ParameterizedHeader extends UnstructuredHeader */ private function getEndOfParameterValue(string $value, bool $encoded = false, bool $firstLine = false): string { - if (!preg_match('/^'.self::TOKEN_REGEX.'$/D', $value)) { + $forceHttpQuoting = 'content-disposition' === strtolower($this->getName()) && 'form-data' === $this->getValue(); + if ($forceHttpQuoting || !preg_match('/^'.self::TOKEN_REGEX.'$/D', $value)) { $value = '"'.$value.'"'; } $prepend = '='; diff --git a/src/Symfony/Component/Mime/Part/TextPart.php b/src/Symfony/Component/Mime/Part/TextPart.php index a41d91ddec..35224ad9d8 100644 --- a/src/Symfony/Component/Mime/Part/TextPart.php +++ b/src/Symfony/Component/Mime/Part/TextPart.php @@ -129,7 +129,7 @@ class TextPart extends AbstractPart if ($this->charset) { $headers->setHeaderParameter('Content-Type', 'charset', $this->charset); } - if ($this->name) { + if ($this->name && 'form-data' !== $this->disposition) { $headers->setHeaderParameter('Content-Type', 'name', $this->name); } $headers->setHeaderBody('Text', 'Content-Transfer-Encoding', $this->encoding);