fedeisas / laravel-mail-css-inliner
使用Laravel内联HTML邮件中的CSS
5.3.0
2024-04-11 19:37 UTC
Requires
- php: ^8.0.2
- ext-dom: *
- illuminate/mail: ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^9.0 || ^10.0 || ^11.0
- paragonie/random_compat: ~2.0 || ~9.99
- tijsverkoyen/css-to-inline-styles: ~2.2
Requires (Dev)
- enlightn/security-checker: ^1.10 || ^2.0
- guzzlehttp/guzzle: ^6.5.8 || ^7.4.5
- guzzlehttp/psr7: ^1.9.1 || ^2.4.5
- phpunit/phpunit: ^9.0
- symfony/mailer: ^6.0 || ^7.0
README
为什么?
大多数电子邮件客户端不会渲染CSS(在<link>
或<style>
)。解决方案是将CSS直接内联在HTML中。手动这样做很容易变成难以维护的模板。这个包的目标是在发送邮件之前自动化内联CSS的过程。
安装和兼容性
从版本5开始,此包需要PHP 8.0和Laravel 9.0或更高版本。
使用较旧的PHP / Laravel版本?
如果您使用的PHP版本低于8.0或Laravel版本低于9.0,只需使用此包的4.*版本。
如何?
使用一个出色的CSS内联包,通过Symfony Mailer插件包装并提供为服务提供者,它无需任何配置即可正常工作。由于这是一个Symfony Mailer插件,它将在解析电子邮件模板时自动内联CSS。您不需要做任何事情!
将样式标签转换为
<html> <head> <style> h1 { font-size: 24px; color: #000; } </style> </head> <body> <h1>Hey you</h1> </body> </html>
或将链接标签转换为
<html> <head> <link rel="stylesheet" type="text/css" href="./tests/css/test.css"> </head> <body> <h1>Hey you</h1> </body> </html>
这个
<html> <head> <style> h1 { font-size: 24px; color: #000; } </style> </head> <body> <h1 style="font-size: 24px; color: #000;">Hey you</h1> </body> </html>
安装
此包需要Laravel 9.x。
首先,通过Composer安装此包。在终端中直接要求它以获取最后一个稳定版本
composer require fedeisas/laravel-mail-css-inliner
此时,内联器应该已经使用默认选项工作。如果您想调整这些选项,可以通过发布配置文件来做到这一点
php artisan vendor:publish --provider='Fedeisas\LaravelMailCssInliner\LaravelMailCssInlinerServiceProvider'
并更改生成的config/css-inliner.php
文件中的设置。
贡献
- 安装项目依赖关系
composer install
- 使用以下命令执行测试
./vendor/bin/phpunit
发现了一个错误?
请告诉我!发送一个拉取请求或补丁。有问题吗?问!我会回应所有提出的问题。
灵感
此包在很大程度上受到了SwiftMailer CSS Inliner的启发,并大部分复制了它。我只是为Laravel创建了一个简单的即插即用解决方案。
许可证
此包是开源软件,根据MIT许可证授权。