TYPO3 表单框架:以 HTML 和纯文本格式发送电子邮件

TYPO3 form framework: Sending email as both HTML and Plain Text

完成者 EmailToSenderEmailToReceiver 都给出了格式选项 'html' 或 'plaintext'。如何发送包含 'plaintext' 和 'html' 的电子邮件?

背景是:AFAIK 电子邮件应始终包含定义明文部分,以供我们这些无法或不希望收到 HTML 电子邮件的人使用。 AFAIK 这是 RFC 所要求的(不知道是哪一个)。

因为我从不经常使用表单扩展,所以我不确定您对邮件格式的看法是否正确,特别是 html-格式从不包含纯文本部分。我建议检查邮件格式是否真的 html 而不是 multipart.

如果需要,您可以添加自己的修整器,也可以作为后端选择中的选项。

this documentation 中描述了许多可能的事情:

  • 添加自己的终结者class(es)
  • 在不同的终结者之间交换数据
  • 本地化(翻译)完成者
  • 定义默认值
  • 使用完成者的上下文
  • 将整理器添加到后端UI

作为第一步,我会尝试编写一个简单的整理程序,它可以做一些简单的事情,例如将 "Hello World" 添加到邮件或完全替换邮件文本。
在此 class 中,我将尝试从其他修整器访问数据并测试这些数据是否可以编程方式使用,即使不通过在后端选择激活其他修整器也是如此。如果可能的话,您可以从文本邮件和 html 邮件的两个整理器中检索数据,并根据需要组合它们。

在这里添加一点代码,这是一个简单的整理器的包含方式:

TYPO3:
  CMS:
    Form:
      prototypes:
        standard:
          finishersDefinition:
            CustomFinisher:
              implementationClassName: 'VENDOR\MySitePackage\Domain\Finishers\CustomFinisher'

这是一个简单的终结者-class:

declare(strict_types = 1);
namespace VENDOR\MySitePackage\Domain\Finishers;

class CustomFinisher extends \TYPO3\CMS\Form\Domain\Finishers\AbstractFinisher
{

    protected $defaultOptions = [
        'yourCustomOption' => 'Olli',
    ];

    // ...
}

更多详情请阅读the documentation或询问更详细的内容。

此功能已添加到 TYPO3v10:Send plaintext and HTML mails in EmailFinisher