fedeisas/laravel-mail-css-inliner

使用Laravel内联HTML邮件中的CSS

5.3.0 2024-04-11 19:37 UTC

README

Dependabot Status Latest Stable Version Latest Unstable Version Total Downloads License

为什么?

大多数电子邮件客户端不会渲染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许可证授权。