lekoala / silverstripe-foundation-emails
为 SilverStripe 提供更好的电子邮件布局
Requires
- php: ~7
- silverstripe/framework: ^4
Suggests
- lekoala/silverstripe-email-templates: Email templates editables from the cms
- lekoala/silverstripe-sparkpost: Use SparkPost to send your emails
- lorenzo/pinky: Use Inky for your html emails
- pelago/emogrifier: Inline styles for your emails
README
通过 [Foundation Emails] (http://foundation.zurb.com/emails/docs/css-guide.html) 代替默认的 html 模板。
电子邮件模板使用 zurb/foundation-emails 提供一致的标记。
扩展的通用电子邮件
通用电子邮件包含一些新选项
- 如果你定义了一个 Callout,它将被显示为 Callout
- 如果你定义了一个 Sidebar,将显示一个右侧栏(比例 7/5)
- 如果你定义了一个 HeroImage(一个图像对象),它将在正文下方和 Callout 之前显示
$email = new Email(); $email->addData([ 'EmailContent' => 'Here is my body', 'Callout' => 'Here is my callout', 'Sidebar' => 'Here is my sidebar', 'HeroImage' => Image::get()->first() ]);
提供默认的头部和尾部
- 头部显示标志或网站的标题
- 尾部显示社交媒体链接和用户在 SiteConfig 中定义的文本(在 EmailFooter 下)
在尾部,应通过 SiteConfig 上的 EmailFooterLinks 方法提供社交媒体链接。每个项目包含一个 : 类,链接,标签和图标。
注意:不要使用 setBody,因为它将阻止使用默认模板。相反,依赖于 addData(['EmailContent' => $body])。
模板助手
除了依赖于特定的标记外,你还可以直接在电子邮件模板中使用模板助手。例如
$email = new Email(); $viewer = new SSViewer('MyEmailTemplate'); $result = $viewer->process($this); $email->addData(['EmailContent' => (string) $result]); Dear Customer,<br/><br/> Please find your password reset link:<br/><br/> $FoundationButton('Reset your passowrd', $PasswordResetLink)
可用的助手包括
- FoundationSpacer
- FoundationButton
- FoundationCallout
- FoundationContainer
自定义样式
模板被分为各种包含文件,这使得你很容易将它们适配到你的样式。
要定义你的基本样式,覆盖 FoundationEmailStyles.ss。
要定义你自己的头部和尾部,覆盖 FoundationEmailFooter 和 FoundationEmailHeader。
还提供了两种其他样式:“vision”和“ceej”。你可以自由地使用你最喜欢的一个。你可以通过以下配置来选择你的主题。
FoundationEmails: theme: "vision"
你也可以编辑基本颜色或使用扩展点“updateFoundationColors”。
FoundationEmails: colors: HeaderBg: "#333" Header: "#fff" Link: "#2199e8" Background: "#f3f3f3" CalloutBg: "#ddd" Callout: "#ddd" BtnBg: "#333" Btn: "#fff"
一致的更改密码和忘记密码模板
这些默认模板已被覆盖。
注意:我们包含了一个按钮来重置密码而不是一个普通的链接。
创建新的电子邮件
如 [SilverStripe 文档] (https://docs.silverstripe.org/en/4/developer_guides/email/) 中所述,你可以创建 Email 类的子类。
已提供了一个名为 WelcomeEmail 的示例类。
测试电子邮件
为了方便起见,提供了一个名为 "Email Viewer Task" 的任务。
此任务允许你选择 Email 类的任何子类并查看其 html(预览和代码)。
你还可以设置区域设置和内联样式(需要 pelago/emogrifier)以进行更好的测试。
如果你的电子邮件需要构造函数参数是 DataObjects,数据库中的随机记录将被注入。如果你想注入特定的记录,请通过 GET 参数传递 ClassNameID=YourID(例如 MemberID=5)。
兼容性
测试了 4.1+
维护者
LeKoala - thomas@lekoala.be