ajohnson6494/laravel-symfony-mailer-css-inliner

使用 Laravel 和 Symfony Mailer 自动内联 HTML 邮件中的 CSS

v1.2.0 2024-03-23 15:18 UTC

This package is auto-updated.

Last update: 2024-09-23 16:16:41 UTC


README

Latest Stable Version License

为什么?

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