沙尘暴 / 通讯录
Neos的包,使其能够以高效的方式发送通讯录。
Requires
- guzzlehttp/guzzle: ~5.0
- league/csv: ~7.1
- symfony/process: ~2.6
- tijsverkoyen/css-to-inline-styles: ~1.5
- typo3/flow: *
- typo3/neos: *
This package is auto-updated.
Last update: 2024-09-09 20:58:11 UTC
README
该项目由Swisscom赞助,并由Web Essentials发起。感谢您的支持!
这是一个调整Neos的工具,使其可用于发送通讯录。
它由两部分组成
这是一个基于Neos的通讯录发送基础设施。实际的通讯录发送通过Redis和一个Go守护进程处理,可以在https://github.com/sandstorm/mailer-daemon找到。
特性
- 通过SMTP或Mandrill进行高效且分布式的邮件发送
- 所有通讯录内容都可通过Neos进行管理
- 允许在通讯录中以自定义收件人特定字段替换任意内容。
- 在
桌面
预览模式下可以预览收件人特定字段。 - 支持多语言
- 允许使用jq查询语言任意分割收件人列表,以严格控制应向谁发送通讯录。
- 可能创建自定义收件人源
- 以隐私保护的方式支持退订列表,不存储电子邮件地址,只存储它们的哈希值
- 通过启动多个Go守护进程同时进行并行电子邮件发送
- 自动内联CSS样式表,以实现最大兼容性
非特性
以下内容尚未实现,但可能在未来的项目中实现
- 注册新的通讯录
先决条件
- 安装由Go编写的mailer发送守护进程
- 安装Redis
- 安装jq并确保它存在于PATH中。
安装/设置
-
通过packagist安装此包
cd path/to/your/NeosDistribution composer require sandstorm/newsletter
-
确保包含路由,这意味着
Configuration/Routes.yaml
应该在Neos路由之前包含以下内容- name: 'Newsletter' uriPattern: 'neos/newsletter/<NewsletterSubroutes>' subRoutes: 'NewsletterSubroutes': package: 'Sandstorm.Newsletter'
-
创建一个neos页面模板,使用TypoScript对象
Sandstorm.Newsletter:NewsletterPage
。同时,确保在您的页面中包含Sandstorm.Newsletter:SampleDataWidget
。以下是一个TypoScript代码片段的示例
page = Sandstorm.Newsletter:NewsletterPage page.sampleDataWidget = Sandstorm.Newsletter:SampleDataWidget
接收者源和接收者组
内部,系统使用文件来表示接收者列表。文件中的每一行代表一个单个接收者,是一个包含任意属性(其中至少一个是电子邮件地址)的JSON对象。
-
接收者源基本上是接收者的一个来源。目前,我们支持逐行JSON和CSV文件;但您可能希望稍后创建自己的接收者源。
-
如果您使用多种语言,接收者源还包含一个规则,用于将行分割到不同的语言中。
-
“接收者组”是“接收者源”内部的一个附加子集,因此您可以创建“男性”或“女性”接收者源。
在Neos中的使用
-
首先,转到“新闻通讯接收者管理”模块并创建一个新的接收者源;在我们的例子中选择类型“CSV上传”。
-
然后,上传“Documentation/example.csv”文件。它定义了字段“firstName”、“lastName”、“email”、“gender”和“language”,并包含仅三个接收者。
-
如果您已配置语言内容维度,设置正确的过滤器;例如
- 德语:
language == "de"
- 法语:
language == "fr"
- (其他):
false
(因为输入文件不包含这些语言)
- 德语:
-
(可选)为“男性”创建一个接收者组,过滤器为
gender == "male"
,反之亦然为“female”。 -
现在,在Neos的内容模块中,创建一个新的类型为“新闻通讯”的文档。在检查器中,首先选择一个“接收者组”。可选地定义电子邮件主题等;然后创建您喜欢的内容。
-
如果您的内容例如包括
{firstName}
,这将用电子邮件接收者的实际名字替换。您可以通过切换到预览中心的桌面
模式来预览。 -
享受吧!
获取帮助
如果您遇到困难,请随时联系@sebastian或@christoph.daehne在slack.neos.io的Slack上。
许可
本软件按MIT许可证授权。