ajohnson6494 / laravel-symfony-mailer-css-inliner
使用 Laravel 和 Symfony Mailer 自动内联 HTML 邮件中的 CSS
v1.2.0
2024-03-23 15:18 UTC
Requires
- php: ^8.2 || ^8.3
- ext-dom: *
- ext-libxml: *
- illuminate/mail: ^11
- illuminate/support: ^11
- tijsverkoyen/css-to-inline-styles: ~2.2
Requires (Dev)
- enlightn/security-checker: ^2.0
- phpunit/phpunit: ^11
- symfony/mailer: ^7.0
This package is auto-updated.
Last update: 2024-09-23 16:16:41 UTC
README
为什么?
大多数电子邮件客户端不会渲染 CSS(在 <link>
或 <style>
上)。解决方案是将 CSS 直接内联在 HTML 上。手动这样做很容易变成难以维护的模板。本软件包的目标是在发送邮件之前自动内联该 CSS。
安装和兼容性
需要 PHP 8.1 和 Laravel 9.0 或更高版本。
如何操作?
使用一个出色的 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 ajohnson6494/laravel-symfony-mailer-css-inliner
到此为止,内联器应该已经以默认选项工作。如果您想调整这些选项,可以通过发布配置文件来完成
$ php artisan vendor:publish --provider='ajohnson6494\LaravelSymfonyMailerCssInliner\LaravelMailCssInlinerServiceProvider'
并更改生成的 config/css-inliner.php
文件中的设置。
贡献
$ composer install $ ./vendor/bin/phpunit
发现了一个错误?
请告诉我!发送一个 pull request 或补丁。有问题吗?问吧!我将回应所有提交的问题。
灵感
此软件包受到了 SwiftMailer CSS Inliner 的极大启发,并且大部分内容都来自它。我只是为 Laravel 创建了一个简单的即插即用解决方案。
许可
此软件包是开源软件,受 MIT 许可证 许可。