lanin / laravel-email-templates-optimization
通过Laravel模板机制优化您的电子邮件模板样式。
0.1.0
2016-10-15 08:44 UTC
Requires
- php: >=5.5.9
- illuminate/support: ^5.1
- illuminate/view: ^5.1
- tijsverkoyen/css-to-inline-styles: ~2.0
Requires (Dev)
- mockery/mockery: 0.9.*
- orchestra/testbench: ~3.1
- phpunit/phpunit: 4.*
This package is auto-updated.
Last update: 2024-09-07 21:24:40 UTC
README
通过Laravel模板机制优化您的电子邮件模板样式。
如果您想发送HTML电子邮件,不能只通过带有 <style></style>
标签来发送,或者链接样式表。大多数电子邮件客户端都会将其截断,客户端将看到没有样式的电子邮件。
实现最佳电子邮件质量的方法是将所有样式转换为内联 style=""
属性,如下所示
源代码
<!DOCTYPE html> <html> <head> <title>Hello World</title> <style> body { font-size: 14px; } h1 { font-size: 20px; } a { color: #333; } </style> </head> <body> <h1>Hello!</h1> <p class="content"> <a href="https://laravel.net.cn">Laravel</a> </p> </body> </html>
结果
<!DOCTYPE html> <html> <head> <title>Hello World</title> </head> <body style="font-size: 14px;"> <h1 style="font-size: 20px;">Hello!</h1> <p class="content"> <a href="https://laravel.net.cn" style="color: #333;">Laravel</a> </p> </body> </html>
如何实现这一点?
- 您可以预先编译模板,并按原样存储和发送它们。但是,编译后的模板将难以维护。
- 或者您可以在每次发送电子邮件时编译它们,就像在 https://github.com/fedeisas/laravel-mail-css-inliner 包中一样。但这将造成巨大的开销。
考虑到这一点,我创建了这款引擎。它将CSS编译到电子邮件模板中,同时利用原生Laravel的Blade语法和编译并缓存的方法。
这意味着您可以像以前一样存储电子邮件模板,它们将实时编译并缓存,以便每次不需要重新编译!
安装
需要PHP 5.5.9+或HHVM 3.3+,Composer和Laravel 5.1+。
要获取Laravel-Email-Templates-Optimization的最新版本,只需通过Composer安装即可。
$ composer require "lanin/laravel-email-templates-optimization:0.1.*"
安装包后,您需要注册服务提供者。打开config/app.php
文件,并在providers键中添加以下内容。
Lanin\Laravel\EmailTemplatesOptimization\ServiceProvider::class,
使用方法
您需要做的就是将电子邮件模板的文件名从*.blade.php
重命名为*.email.php
,然后就可以使用了!这个引擎将为您完成剩余的工作!
配置
此外,您还可以告诉引擎使用哪些静态CSS文件与模板一起使用,以避免在每个模板中重复。
为此,您可以将以下内容设置到您的view.php配置中
'emails' => [ /* |-------------------------------------------------------------------------- | Css Files |-------------------------------------------------------------------------- | | List of absolute paths to static css files to use in your email templates. | | Example: realpath(resource_path('assets/css/emails.css')) | */ 'css_files' => [ ], ],
贡献
请随意fork这个包,并通过提交拉取请求来增强功能。