blueways / bw-email
TYPO3 扩展,用于发送响应式电子邮件模板
Requires
- ext-json: *
- maikschneider/inky: 1.3.6.*
- tijsverkoyen/css-to-inline-styles: ^2.2
Requires (Dev)
- bk2k/bootstrap-package: dev-master
- friendsofphp/php-cs-fixer: ^3.3
- roave/security-advisories: dev-latest
- saschaegerer/phpstan-typo3: ^1.8
- ssch/typo3-rector: ^1.2
- typo3/cms-base-distribution: ^11.5
This package is auto-updated.
Last update: 2024-09-11 21:31:26 UTC
README
这是 bw_email 扩展的官方文档。
关于
您可以使用此扩展发送整个页面或任何具有 TCA 定义的元素。
模板使用 Zurb Foundation Inky 进行解析。您可以在流体模板中使用 Inky 标记来生成大多数邮件客户端所需的表格标记。
安装
- 通过 composer 安装
composer require blueways/bw-email
- 在扩展管理器中激活
- 包含静态 TypoScript 模板
模板
该扩展提供了一些默认模板,位于 ÈXT:bw_email/Resources/Private/Templates
。您可以通过设置常量来覆盖模板。
plugin.tx_bwemail {
view {
templateRootPath =
partialRootPath =
layoutRootPath =
}
}
默认邮件设置
要注册新模板,请使用 TypoScript 设置
plugin.tx_bwemail {
settings {
# Remove all default templates
templates >
templates {
TemplateFileName = Title of Template
}
# Default setup
css = EXT:bw_email/Resources/Public/Css/app.css
senderAddress = noreply@example.com
senderName = Example sender name
replytoAddress =
subject = Example subject
template = Default
showUid = 1
recipientAddress =
}
}
数据源
从一开始,您就可以在电子邮件向导中向电子邮件地址发送单个电子邮件。如果您想向多个人发送电子邮件,您可以创建一个电子邮件数据源条目并选择以下内置连接器之一
- fe_users
- CSV 文件(即将推出)
在其他扩展中使用
您可以在自己的扩展中使用 Blueways\View\EmailView
以 Inky 语法渲染响应式电子邮件 HTML。它的工作方式与 StandaloneView
相同。
扩展
您可以使用 DataSource-Provider 或创建自己的 ContactProvider。
数据源模型
如果您想通过 Backend 配置源,您可以使用现有的 DataSource 模型。通过扩展 ContactSource
模型并实现 getContacts()
方法来创建自己的模型。
别忘了通过 typoscript 注册继承
config.tx_extbase.persistence.classes {
Blueways\BwEmail\Domain\Model\ContactSource {
subclasses {
Vendor\Extension\YourModel = Vendor\Extension\YourModel
}
}
Vendor\Extension\YourModel.mapping {
recordType = Vendor\Extension\YourModel
tableName = tx_bwemail_domain_model_contactsource
}
}
ContactProvider 服务
如果您想使用外部数据,您可以编写自己的 ContactProvider。只需从 Blueways\BwEmail\Service\ContactProvider
扩展并注册类即可。
已知问题
- CSS 文件需要在电子邮件模板中硬编码(参见 Default.html)
- 内联 RTE 链接被额外的
<p></p>
包装,这会导致换行 - 内部链接可能损坏
在其他内容元素中使用
您可以在其他内容元素(如 Textmedia 或 News)中使用电子邮件向导。只需添加一个具有 TCA-RenderType "sendMailButton" 的元素。以下是如何将发送邮件按钮添加到 tt_content 元素的示例
// TCA/Overrides/tt_content.php <?php $tempColumns = [ 'mail_button' => [ 'label' => 'Send this tt_content', 'config' => [ 'type' => 'passthrough', 'renderType' => 'sendMailButton', ], ] ]; ExtensionManagementUtility::addTCAcolumns('tt_content', $tempColumns); ExtensionManagementUtility::addToAllTCAtypes( 'tt_content', 'mail_button', '', 'before:CType' );
当前记录将在 Fluid 模板中以 {record}
的形式可用。
要注入其他元素或覆盖默认设置,您可以使用 tableOverrides
TypoScript 设置。
plugin.tx_bwemail {
settings {
subject = Default subject in all places
tableOverrides {
tt_content {
subject = New subject
recipientName = FIELD:header
typoscriptSelects {
latestNews {
table = tx_news
select {
pidInList = 3
orderBy = sorting
max = 3
}
}
}
}
}
}
}
使用 typoscriptSelects
设置,您可以将记录插入到电子邮件模板中。在上面的示例中,您可以使用 <f:for each="{latestNews}" as="news">{news.title}</f:for>
显示最新的新闻记录。
待办事项
- 更好的翻译
- 更好的默认模板组织
- 新 v9 的绝对 URL 处理
- 将提供者设置移至 TypoScript
改进意见
- 在消息中嵌入图片
- 独立的后端模块
- 发送邮件日志
- 为 Foundation for Email 提供 Sass 编译器